• MATLAB中scatter3函数用法


    目录

    语法

    说明

    向量和矩阵数据

    表数据

    其他选项

    示例

    创建三维散点图

    改变标记大小

    改变标记颜色

    填充标记

    设置标记类型

    设置标记属性

    绘制表中的数据

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

    指定三维散点图的坐标区

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


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

    语法

    1. scatter3(X,Y,Z)
    2. scatter3(X,Y,Z,S)
    3. scatter3(X,Y,Z,S,C)
    4. scatter3(___,'filled')
    5. scatter3(___,markertype)
    6. scatter3(tbl,xvar,yvar,zvar)
    7. scatter3(tbl,xvar,yvar,zvar,'filled')
    8. scatter3(ax,___)
    9. scatter3(___,Name,Value)
    10. 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。

    1. figure
    2. [X,Y,Z] = sphere(16);
    3. x = [0.5*X(:); 0.75*X(:); X(:)];
    4. y = [0.5*Y(:); 0.75*Y(:); Y(:)];
    5. z = [0.5*Z(:); 0.75*Z(:); Z(:)];
    6. scatter3(x,y,z)

    如图所示:

    改变标记大小

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

    1. [X,Y,Z] = sphere(16);
    2. x = [0.5*X(:); 0.75*X(:); X(:)];
    3. y = [0.5*Y(:); 0.75*Y(:); Y(:)];
    4. z = [0.5*Z(:); 0.75*Z(:); Z(:)];

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

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

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

    1. figure
    2. scatter3(x,y,z,s)
    3. view(40,35)

    如图所示:

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

    改变标记颜色

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

    1. [X,Y,Z] = sphere(16);
    2. x = [0.5*X(:); 0.75*X(:); X(:)];
    3. y = [0.5*Y(:); 0.75*Y(:); Y(:)];
    4. z = [0.5*Z(:); 0.75*Z(:); Z(:)];

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

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

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

    1. figure
    2. scatter3(x,y,z,s,c)
    3. view(40,35)

    如图所示:

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

    填充标记

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

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

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

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

    如图所示:

    设置标记类型

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

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

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

    1. figure
    2. scatter3(x,y,z,'*')
    3. view(-30,10)

    如图所示:

    设置标记属性

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

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

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

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

    如图所示:

    绘制表中的数据

            自 R2021b 开始提供

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

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

    如图所示:

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

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

    如图所示:

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

            自 R2021b 开始提供

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

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

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

    如图所示:

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

    1. s.SizeData = 100;
    2. colorbar

    如图所示:

    指定三维散点图的坐标区

    自 R2019b 开始提供

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

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

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

    如图所示:

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

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

    1. [X,Y,Z] = sphere(16);
    2. x = [0.5*X(:); 0.75*X(:); X(:)];
    3. y = [0.5*Y(:); 0.75*Y(:); Y(:)];
    4. z = [0.5*Z(:); 0.75*Z(:); Z(:)];

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

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

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

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

    如图所示:

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

    h.MarkerFaceColor = [0 0.5 0.5];

    如图所示:

  • 相关阅读:
    清洁机器人--沿边测距传感器 sharp psd红外传感器的FOV角度分析
    DM8的列存储HUGE表
    每日一题2609. 最长平衡子字符串
    安达发|制造业的新趋势:APS排程软件的广泛应用
    HTTPS一定安全吗
    贯穿嵌入式开发的编程语言?
    java 批量更改
    【LeetCode】41. 缺失的第一个正数
    Git---当本地分支和远程分支都被删除时,如何处理?
    二、代码块的加载顺序
  • 原文地址:https://blog.csdn.net/jk_101/article/details/132849160