MATLAB中scatter3函数用法

目录

语法

说明

向量和矩阵数据

表数据

其他选项

示例

创建三维散点图

改变标记大小

改变标记颜色

填充标记

设置标记类型

设置标记属性

绘制表中的数据

使用自定义标记大小和颜色绘制表数据

指定三维散点图的坐标区

使用句柄设置散点序列属性


        scatter3函数的功能是绘制三维散点图。

语法

scatter3(X,Y,Z)
scatter3(X,Y,Z,S)
scatter3(X,Y,Z,S,C)
scatter3(___,'filled')
scatter3(___,markertype)
scatter3(tbl,xvar,yvar,zvar)
scatter3(tbl,xvar,yvar,zvar,'filled')
scatter3(ax,___)
scatter3(___,Name,Value)
h = scatter3(___)

说明

向量和矩阵数据

scatter3(X,Y,Z) 在 X、Y 和 Z 指定的位置显示圆圈。

  • 要绘制一组坐标,请将 X、Y 和 Z 指定为等长向量。

  • 要在同一组坐标轴上绘制多组坐标,请将 X、Y 或 Z 中的至少一个指定为矩阵。(自 R2022a 开始提供)

scatter3(X,Y,Z,S) 指定圆圈大小。

  • 要更改圆圈的大小,请将 S 指定为向量。

  • 要跨多组坐标指定不同的圆圈大小,请指定一个矩阵。(自 R2022a 开始提供)

scatter3(X,Y,Z,S,C) 指定圆颜色。您可以为所有圆指定一种颜色,也可以更改颜色。例如,您可以通过将 C 指定为 "red" 来绘制所有红色圆。

scatter3(___,'filled') 使用上述语法中的任何输入参数组合填充这些圆。

scatter3(___,markertype) 指定标记类型。

表数据

scatter3(tbl,xvar,yvar,zvar) 绘制表 tbl 中的变量 xvar、yvar 和 zvar。要绘制一个数据集,请为 xvar、yvar 和 zvar 各指定一个变量。要绘制多个数据集,请为其中至少一个参数指定多个变量。对于指定多个变量的参数,指定的变量数目必须相同。(自 R2021b 开始提供)

scatter3(tbl,xvar,yvar,zvar,'filled') 用实心圆绘制表中的指定变量。(自 R2021b 开始提供)

其他选项

scatter3(ax,___) 将图形绘制到 ax 指定的坐标区中,而不是当前坐标区 (gca) 中。选项 ax 可以位于上述语法中的任何输入参数组合之前。

scatter3(___,Name,Value) 通过使用一个或多个名称-值参数设置属性来修改散点图。例如:

  • scatter3(x,y,z,'LineWidth',2) 创建一个标记轮廓为两磅的散点图。

  • scatter3(tbl,'MyX','MyY','MyZ','ColorVariable','MyColors') 根据表中的数据创建一个散点图,并使用表中的数据自定义标记颜色。

h = scatter3(___) 返回 Scatter 对象。在创建散点图后,可使用 h 修改其属性。

示例

创建三维散点图

创建三维散点图。使用 sphere 定义向量 x、y 和 z。

figure
[X,Y,Z] = sphere(16);
x = [0.5*X(:); 0.75*X(:); X(:)];
y = [0.5*Y(:); 0.75*Y(:); Y(:)];
z = [0.5*Z(:); 0.75*Z(:); Z(:)];
scatter3(x,y,z)

如图所示:

改变标记大小

使用 sphere 定义向量 x、y 和 z。

[X,Y,Z] = sphere(16);
x = [0.5*X(:); 0.75*X(:); X(:)];
y = [0.5*Y(:); 0.75*Y(:); Y(:)];
z = [0.5*Z(:); 0.75*Z(:); Z(:)];

定义向量 s 可指定标记大小。

S = repmat([100,50,5],numel(X),1);
s = S(:);

创建一个三维散点图并使用 view 更改图窗中坐标区的角度。

figure
scatter3(x,y,z,s)
view(40,35)

如图所示:

        x、y、z 和 s 中的相应项确定每个标记的位置和大小。

改变标记颜色

使用 sphere 定义向量 x、y 和 z。

[X,Y,Z] = sphere(16);
x = [0.5*X(:); 0.75*X(:); X(:)];
y = [0.5*Y(:); 0.75*Y(:); Y(:)];
z = [0.5*Z(:); 0.75*Z(:); Z(:)];

定义向量 s 和 c 以指定每个标记的大小和颜色。

S = repmat([50,25,10],numel(X),1);
C = repmat([1,2,3],numel(X),1);
s = S(:);
c = C(:);

创建一个三维散点图并使用 view 更改图窗中坐标区的角度。

figure
scatter3(x,y,z,s,c)
view(40,35)

如图所示:

x、y、z 和 c 中的相应项确定每个标记的位置和颜色。

填充标记

将向量 x 和 y 创建为带随机干扰的余弦和正弦值。

z = linspace(0,4*pi,250);
x = 2*cos(z) + rand(1,250);
y = 2*sin(z) + rand(1,250);

创建一个三维散点图并填充标记。使用 view 可更改图窗中坐标区的角度。

scatter3(x,y,z,'filled')
view(-30,10)

如图所示:

设置标记类型

初始化随机数生成器以使 rand 的输出可重复。将向量 x 和 y 定义为带随机干扰的余弦和正弦值。

rng default
z = linspace(0,4*pi,250);
x = 2*cos(z) + rand(1,250);
y = 2*sin(z) + rand(1,250);

创建一个三维散点图并设置标记类型。使用 view 可更改图窗中坐标区的角度。

figure
scatter3(x,y,z,'*')
view(-30,10)

如图所示:

设置标记属性

初始化随机数生成器以使 rand 的输出可重复。将向量 x 和 y 定义为带随机干扰的余弦和正弦值。

rng default
z = linspace(0,4*pi,250);
x = 2*cos(z) + rand(1,250);
y = 2*sin(z) + rand(1,250);

创建一个三维散点图并设置标记边颜色和标记面颜色。使用 view 可更改图窗中坐标区的角度。

figure
scatter3(x,y,z,...
        'MarkerEdgeColor','k',...
        'MarkerFaceColor',[0 .75 .75])
view(-30,10)

如图所示:

绘制表中的数据

        自 R2021b 开始提供

        绘制表中数据的一种便捷方法是将表传递给 scatter3 函数,并指定要绘制的变量。例如,将 patients.xls 以表 tbl 形式读取。通过将 tbl 作为第一个参数传递给 scatter3 函数,后跟变量名称,绘制 Systolic、Diastolic 和 Weight 变量之间的关系。默认情况下,轴标签与变量名称匹配。

tbl = readtable('patients.xls');
scatter3(tbl,'Systolic','Diastolic','Weight');

如图所示:

        也可以同时绘制多个变量。例如,通过将 xvar 参数指定为元胞数组 {'Systolic','Diastolic'},在同一 x 轴上绘制两个血压变量。然后,添加一个图例。图例标签与变量名称匹配。

scatter3(tbl,{'Systolic','Diastolic'},'Age','Weight');
legend

如图所示:

使用自定义标记大小和颜色绘制表数据

        自 R2021b 开始提供

        绘制表中数据并自定义颜色和标记大小的一种方法是设置 ColorVariable 和 SizeData 属性。您可以在调用 scatter3 函数时将这些属性设置为名称-值参数,也可以稍后在 Scatter 对象上设置它们。

        例如,将 patients.xls 以表 tbl 形式读取。用填充标记绘制 Systolic、Diastolic 和 Weight 变量之间的关系。通过指定 ColorVariable 名称-值参数来更改标记颜色。将 Scatter 对象返回为 s,以便以后可以设置其他属性。

tbl = readtable('patients.xls');
s = scatter3(tbl,'Systolic','Diastolic','Weight','filled', ...
    'ColorVariable','Diastolic');

如图所示:

        通过设置 SizeData 属性,将标记大小更改为 100 磅。然后添加颜色栏。

s.SizeData = 100;
colorbar

如图所示:

指定三维散点图的坐标区

自 R2019b 开始提供

可以使用 tiledlayout 和 nexttile 函数显示分块图。

        加载 seamount 数据集以获取向量 x、y 和 z。调用 tiledlayout 函数以创建一个 2×1 分块图布局。调用 nexttile 函数以创建坐标区对象 ax1 和 ax2。然后通过将坐标区对象指定为 scatter3 的第一个参数,在坐标区中创建单独的散点图。

load seamount
tiledlayout(2,1)
ax1 = nexttile;
ax2 = nexttile;
scatter3(ax1,x,y,z,'MarkerFaceColor',[0 .75 .75])
scatter3(ax2,x,y,z,'*')

如图所示:

使用句柄设置散点序列属性

使用 sphere 函数创建向量 x、y 和 z。

[X,Y,Z] = sphere(16);
x = [0.5*X(:); 0.75*X(:); X(:)];
y = [0.5*Y(:); 0.75*Y(:); Y(:)];
z = [0.5*Z(:); 0.75*Z(:); Z(:)];

创建向量 s 和 c 以指定每个标记的大小和颜色。

S = repmat([70,50,20],numel(X),1);
C = repmat([1,2,3],numel(X),1);
s = S(:);
c = C(:);

创建一个三维散点图并返回散点序列对象。

h = scatter3(x,y,z,s,c);

如图所示:

使用 RGB 三元组颜色值设置标记面颜色。使用圆点表示法设置属性。

h.MarkerFaceColor = [0 0.5 0.5];

如图所示:

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Matlabscatter3函数用于绘制三维散点图。根据引用的示例,可以使用scatter3(x,y,z)函数来绘制三维散点图,其x、y和z分别表示散点的x、y和z坐标。另外,scatter3函数还可以接受其他参数来设置散点的颜色、大小等属性。 通过scatter3函数,我们可以将四维数据进行可视化,其前三个维度可以通过x、y和z坐标表示,而第四个维度可以通过散点的颜色来表示。这一点可以参考引用的说明。 需要注意的是,scatter3函数的详细使用情况可以通过在Matlab的命令行窗口输入help scatter3来查看。在引用的示例,还展示了如何使用scatter3函数来绘制红色的填充散点图。 综上所述,scatter3函数Matlab用于绘制三维散点图的函数,可以通过设置x、y、z坐标和其他参数来实现不同的可视化效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [使用 Matlab 进行 4D 数据可视化:使用 Matlab 函数scatter3”和“slice”的 4D(四维)数据可视化。...](https://download.csdn.net/download/weixin_38605144/19273579)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [学习matlab(九)——绘图(三维)](https://blog.csdn.net/qq_35789421/article/details/115368734)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值