MATLAB画气泡图的代码
时间: 2023-06-04 14:05:56 浏览: 103
以下是MATLAB画气泡图的示例代码:
xdata = rand(1, 50); % x轴数据
ydata = rand(1, 50); % y轴数据
sizedata = rand(1, 50) * 100; % 点大小
scatter(xdata,ydata, sizedata, 'filled'); % 绘制气泡图,filled参数表示填充圆形
xlabel('X'); % x轴标签
ylabel('Y'); % y轴标签
title('气泡图示例'); % 标题
注意:以上示例代码不一定适用于您的具体需求,您需要根据自己的数据和要求进行调整。
相关问题
matlab相关性气泡图
### 如何在 MATLAB 中创建相关性气泡图
#### 创建数据集
为了绘制相关性气泡图,首先需要准备两个变量的数据以及它们之间的关联强度。假设存在两组随机数作为 X 和 Y 变量,并计算其间的皮尔逊相关系数来表示关系紧密度。
```matlab
% 设置随机种子以便重复实验结果
rng(0);
% 生成模拟数据
n = 5; % 数据点数量
X = rand(n,1)*10;
Y = 2*X + randn(n,1); % 假设 Y 大致线性依赖于 X 加上一些噪声
R = corr(X,Y,'Type','Pearson'); % 计算 Pearson 相关系数矩阵 R
S = abs(R).^2 .* 100; % 将绝对值平方并放大用于控制泡泡大小 S
```
#### 绘制散点图基础框架
利用 `scatter` 函数可以快速构建起基本的二维散点布局,在此基础上通过调整参数实现气泡效果。
```matlab
figure;
hold on;
for i=1:n
scatter(X(i), Y(i), S, 'filled');
end
title('Correlation Bubble Plot Between Two Variables');
xlabel('Variable X');
ylabel('Variable Y');
axis equal tight;
grid minor;
colorbar;
colormap jet;
```
上述代码片段中,循环遍历每一个坐标位置 `(X(i), Y(i))` 并指定对应的面积 `S` 来定义各处圆圈尺寸;同时设置了图形窗口属性使得可视化更加直观[^1]。
#### 添加颜色映射增强表达力
为了让图表更具有视觉冲击力和信息传达效率,可以根据实际需求引入色彩变化机制——比如按照相关性的正负方向着色:
```matlab
C = sign(R).*linspace(-1,+1,n).'; % 构建渐变色序列 C (-1 到 +1)
...
for i=1:n
hScatter = scatter(X(i), Y(i), S, C(i), 'filled', 'MarkerFaceAlpha', .7);
end
...
caxis([-1 1]); % 设定颜色轴范围 [-1, 1]
```
这里使用了 `sign()` 函数获取原始相关系数的方向标记,并结合均匀分布的颜色向量 `C` 实现从蓝到红过渡的效果。最后调用 `caxis()` 方法固定住颜色条目的上下限边界以确保不同批次绘图间的一致性[^2]。
matlab 气泡图
### 如何在 MATLAB 中创建气泡图
#### 使用 Mapping Toolbox 绘制地理气泡图
为了在MATLAB中绘制地理气泡图,Mapping Toolbox提供了必要的功能。此工具箱允许用户根据经纬度坐标以及关联的数据值来定义气泡的位置、大小和颜色[^1]。
```matlab
% 加载样本数据集
load geobubbleData lat lon mag depth;
% 创建一个新的图形窗口并设置其属性
figure;
gb = geobubbles(lat,lon,'SizeVariable',mag,'ColorVariable',depth);
% 添加标题和其他标注信息
title('Geographic Bubble Chart Example');
geobasemap topographic; % 设置底图样式
colorbar; % 显示颜色条以解释数值范围
```
这段代码加载了一个名为`geobubbleData.mat`的文件,其中包含了地震活动的相关参数(纬度、经度、震级和深度),接着调用了`geobubbles()`函数生成了带有不同尺寸与色彩编码的圆形标记表示各个地点上的测量结果[^4]。
#### 利用表格数据构建地理气泡图
当处理结构化的表单化输入时,可以通过读取CSV或其他格式存储的关系型数据库记录到内存中的table对象里再进行绘图操作。下面的例子说明了怎样依据这样的资料源制作一张美观易懂的地图视图[^2]:
```matlab
% 构建一个简单的示例表格
data = table([37.78;-33.86],[-122.41;151.20],[1e6;2e6],'VariableNames',{'Latitude','Longitude','Population'});
% 调用 geoscatter 函数画出人口规模对应的泡泡状分布情况
figure;
gs = geoscatter(data.Longitude,data.Latitude,...
's',data.Population*10,... % 控制每个点代表的人口数量比例因子
'filled',...
'MarkerFaceAlpha',0.5);
title({'City Populations'; '(Bubble Size Proportional to Population)'});
xlabel('Longitude'); ylabel('Latitude');
axis equal tight;
grid on;
```
这里先建立了一张小型的城市列表,里面含有两座城市——旧金山(San Francisco) 和悉尼 (Sydney),连同它们各自的地理位置及居民总数;之后运用 `geoscatter()` 方法按照给定的比例关系把城市的实际人数映射成屏幕空间里的圆圈面积,从而实现了直观表达地域间差异性的效果。
#### 散点图基础:scatter 函数详解
除了专门针对地理坐标的版本外,标准版的 `scatter()` 函数同样适用于非地球科学领域的一般二维散点作图需求。它支持自定义符号外观选项比如形状、边框宽度/风格乃至内部填充模式等等特性[^3]。
```matlab
% 定义一组测试用X轴Y轴序列
x = linspace(0,pi,50);
y = sin(x)+randn(size(x))/10;
% 开启一个多面板布局框架容纳多个独立的小图
subplot(2,2,[1 3]);
scatter(x,y,'r.','LineWidth',2); hold all;
plot(x,sin(x),'k--');
% 应用不同的视觉特效于右侧对应位置处的新子区格内
ax = gca();
set(ax,'NextPlot','add')
h = scatter(ax,x,-y,'b^','filled','MarkerEdgeColor',[0 .5 .5]);
legend({'Noisy Sine Wave','True Curve'},'Location','NorthWestOutside');
```
上述脚本片段先是准备好了几组随机抖动过的正弦波样本来模拟真实世界观测误差的影响因素,随后分别采用了红色实心点(`.`)和平滑曲线虚线形式对比呈现理想模型预测轨迹;而在另一侧则尝试变换成了蓝色倒三角形(^), 并开启了透明度渲染开关让整体看起来更加立体生动一些。
阅读全文
相关推荐
















