目录
语法
说明
示例
scatter函数的功能是绘制散点图。
语法
scatter(x,y)
scatter(x,y,sz)
scatter(x,y,sz,c)
scatter(___,"filled")
scatter(___,mkr)
scatter(tbl,xvar,yvar)
scatter(tbl,xvar,yvar,"filled")
scatter(ax,___)
scatter(___,Name,Value)
s = scatter(___)
说明
向量和矩阵数据
scatter(x,y) 在向量 x 和 y 指定的位置创建一个包含圆形标记的散点图。
-
要绘制一组坐标,请将x和y指定为等长向量。
-
要在同一组坐标区上绘制多组坐标,请将x或y中的至少一个指定为矩阵。
scatter(x,y,sz) 指定圆圈大小。要对所有圆使用相同的大小,请将 sz 指定为标量。要绘制不同大小的每个圆,请将 sz 指定为向量或矩阵。
scatter(x,y,sz,c) 指定圆颜色。可以为所有圆指定一种颜色,也可以更改颜色。例如,可以通过将 c 指定为 "red" 来绘制所有红色圆。
scatter(___,"filled") 填充圆。可以将 "filled" 选项与前面语法中的任何输入参数组合一起使用。
scatter(___,mkr) 指定标记类型。
表数据
scatter(tbl,xvar,yvar) 绘制表 tbl 中的变量 xvar 和 yvar。要绘制一个数据集,请为 xvar 指定一个变量,为 yvar 指定一个变量。要绘制多个数据集,请为 xvar、yvar 或两者指定多个变量。如果两个参数都指定多个变量,它们指定的变量数目必须相同。(自 R2021b 开始提供)
scatter(tbl,xvar,yvar,"filled") 用实心圆绘制表中的指定变量。(自 R2021b 开始提供)
其他选项
scatter(ax,___) 将在 ax 指定的坐标区中,而不是在当前坐标区中绘制图形。选项 ax 可以位于前面的语法中的任何输入参数组合之前。
scatter(___,Name,Value) 通过使用一个或多个名称-值参数设置属性来修改散点图。例如:
-
scatter(x,y,"LineWidth",2) 创建一个标记轮廓为两磅的散点图。
-
scatter(tbl,"MyX","MyY","ColorVariable","MyColors") 根据表中的数据创建一个散点图,并使用表中的数据自定义标记颜色。
s= scatter(___) 返回 Scatter 对象或 Scatter 对象数组。在创建绘图后,使用 s 设置属性。
示例
创建散点图
创建 x
为 0 和 3π 之间的 200 个等间距值。创建 y
为带随机干扰的余弦值。然后,创建一个散点图。
x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);
scatter(x,y)
如图所示:
改变圆圈大小
使用大小不同的圆圈创建一个散点图。以平方磅为单位指定大小
x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);
sz = linspace(1,100,200);
scatter(x,y,sz)
如图所示:
x、y 和 sz 中的相应元素确定每个圆圈的位置和大小。要按照相同的面积绘制所有圆圈,请将 sz 指定为数值标量。
改变圆圈颜色
创建一个散点图并改变圆圈的颜色。
x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);
c = linspace(1,10,length(x));
scatter(x,y,[],c)
如图所示:
x、y 和 c 中的相应元素确定每个圆形的位置和颜色。scatter 函数将 c 中的元素映射到当前颜色图中的元素。
填充标记
创建一个散点图并填充标记。scatter 使用标记边的颜色填充每个标记。
x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);
sz = 25;
c = linspace(1,10,length(x));
scatter(x,y,sz,c,'filled')
如图所示:
指定标记符号
创建向量 x
和 y
,作为带随机干扰的正弦和余弦值。然后,创建一个散点图,并使用面积为 140 平方磅的菱形标记。
theta = linspace(0,2*pi,150);
x = sin(theta) + 0.75*rand(1,150);
y = cos(theta) + 0.75*rand(1,150);
sz = 140;
scatter(x,y,sz,'d')
如图所示:
更改标记颜色和线条宽度
创建向量 x 和 y,作为带随机干扰的正弦和余弦值。创建一个散点图并设置标记边颜色、标记面颜色和线条宽度。
theta = linspace(0,2*pi,300);
x = sin(theta) + 0.75*rand(1,300);
y = cos(theta) + 0.75*rand(1,300);
sz = 40;
scatter(x,y,sz,'MarkerEdgeColor',[0 .5 .5],...
'MarkerFaceColor',[0 .7 .7],...
'LineWidth',1.5)
如图所示:
改变整个数据点范围内的透明度
通过将 AlphaData
属性设置为不同不透明度值的向量,可以改变各散点的透明度。要确保散点图使用 AlphaData
值,请将 MarkerFaceAlpha
属性设置为 'flat'
。
创建一组正态分布的随机数。然后用填充的标记创建数据的散点图。
x = randn(1000,1);
y = randn(1000,1);
s = scatter(x,y,'filled');
如图所示:
根据与零的距离设置每个点的不透明度。
distfromzero = sqrt(x.^2 + y.^2);
s.AlphaData = distfromzero;
s.MarkerFaceAlpha = 'flat';
如图所示:
绘制表中的数据
自 R2021b 开始提供
绘制表中数据的一种便捷方法是将表传递给 scatter 函数,并指定要绘制的变量。例如,将 patients.xls 以表 tbl 形式读取。通过将 tbl 作为第一个参数传递给 scatter 函数,后跟变量名称,绘制 Systolic 和 Diastolic 变量之间的关系。请注意,轴标签与变量名称匹配。
tbl = readtable('patients.xls');
scatter(tbl,'Systolic','Diastolic');
如图所示:
也可以同时绘制多个变量。例如,通过将 yvar 参数指定为元胞数组 {'Systolic','Diastolic'},绘制两个血压变量对 Weight 变量的图。添加图例,注意图例标签与变量名称匹配。
scatter(tbl,'Weight',{'Systolic','Diastolic'});
legend
如图所示:
使用自定义颜色和标记大小绘制表数据
自 R2021b 开始提供
绘制表中数据并自定义颜色和标记大小的一种方法是设置 ColorVariable 和 SizeData 属性。您可以在调用 scatter 函数时将这些属性设置为名称-值参数,也可以稍后在 Scatter 对象上设置它们。
例如,将 patients.xls 以表 tbl 形式读取。用填充标记绘制 Height 变量对 Weight 变量的图。通过指定 ColorVariable 名称-值参数来更改标记颜色。将 Scatter 对象返回为 s,以便以后可以设置其他属性。
tbl = readtable('patients.xls');
s = scatter(tbl,'Weight','Height','filled','ColorVariable','Diastolic');
如图所示:
通过设置 SizeData
属性,将标记大小更改为 100
磅。然后添加颜色栏。
s.SizeData = 100;
colorbar
如图所示:
指定目标坐标区和标记类型
自 R2019b 开始提供
可以使用 tiledlayout 和 nexttile 函数显示分块图。调用 tiledlayout 函数以创建一个 2×1 分块图布局。调用 nexttile 函数以创建坐标区对象 ax1 和 ax2。将在每个坐标区中绘制散点数据。在底部散点图中,指定使用实心菱形标记。
x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);
tiledlayout(2,1)
% Top plot
ax1 = nexttile;
scatter(ax1,x,y)
% Bottom plot
ax2 = nexttile;
scatter(ax2,x,y,'filled','d')
如图所示:
创建并修改散点序列
创建一个散点图并返回散点序列对象 s。
theta = linspace(0,1,500);
x = exp(theta).*sin(100*theta);
y = exp(theta).*cos(100*theta);
s = scatter(x,y);
如图所示:
在创建散点序列后,使用 s
查询并设置其属性。将线宽设置为0.6磅。将标记边颜色设置为蓝色。使用 RGB 三元组颜色设置标记面。
s.LineWidth = 0.6;
s.MarkerEdgeColor = 'b';
s.MarkerFaceColor = [0 0.5 0.5];
如图所示:
在 R2006a 之前推出
R2022b: 用表创建的绘图将保留轴和图例标签中的特殊字符文章来源:https://www.toymoban.com/news/detail-571301.html
R2021b: 将表直接传递给 scatter文章来源地址https://www.toymoban.com/news/detail-571301.html
到了这里,关于MATLAB中scatter函数用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!