首页 > 编程笔记 > MATLAB笔记 阅读:2

MATLAB scatter3()用法详解(附带实例)

在 MATLAB 中,利用函数 scatter3() 可以绘制三维散点图,其调用格式如下。

1) 向量和矩阵数据:
scatter3(X,Y,Z) % 在向量 X、Y 和 Z 指定的位置显示圆圈
scatter3(X,Y,Z,S)  % 按 S 指定的大小绘制圆。若 S 为标量,则绘制大小相等的圆
                   % 若 S 为向量,则绘制特定大小的圆
scatter3(X,Y,Z,S,C) % 使用 C 指定的颜色绘制圆
                    % 若 C 是 RGB 三元组、包含颜色名称的字符向量或字符串,则使用指定的颜色
                    % 若 C 是一个三列矩阵,则 C 的每行指定相应圆的 RGB 颜色值
                    % 若 C 是向量,则 C 中的值线性映射到当前颜色图中的颜色
scatter3(...,'filled') % 使用前面语法中的任何输入参数组合填充这些圆
scatter3(...,markertype) % 指定标记类型

2) 表数据:
scatter3(tbl,xvar,yvar,zvar) % 绘制表 tbl 中的变量 xvar、yvar 和 zvar
                             % 要绘制一个数据集,请为 xvar、yvar 和 zvar 各指定一个变量
                             % 要绘制多个数据集,请为上述 3 个参数中至少一个参数指定多个变量
scatter3(tbl,xvar,yvar,zvar,'filled') % 用实心圆绘制表中指定变量

【实例】绘制三维散点图(向量和矩阵数据)。在编辑器中编写以下程序并运行:
[X,Y,Z] = sphere(16); % 使用 sphere 定义向量 X、Y 和 Z
X = [0.5*X(:); 0.75*X(:); X(:)];
Y = [0.5*Y(:); 0.75*Y(:); Y(:)];
Z = [0.5*Z(:); 0.75*Z(:); Z(:)];

subplot(1,2,1)
scatter3(X,Y,Z)

subplot(1,2,2)
S = repmat([50 25 5],numel(X),1);
C = repmat([1 2 3],numel(X),1);
S = S(:); % 定义向量 S 指定每个标记的大小
C = C(:); % 定义向量 C 指定每个标记的颜色
scatter3(X,Y,Z,S,C)
view(40,35) % 使用 view 更改图窗中坐标区的角度
运行程序后,输出如下图所示的图形:


图 1 三维散点图(向量和矩阵数据)

【实例】绘制三维散点图(表数据)。在编辑器中编写以下程序并运行:
tbl = readtable('patients.xls');

subplot(1,2,1)
scatter3(tbl,'Systolic','Diastolic','Weight');

subplot(1,2,2)
scatter3(tbl,{'Systolic','Diastolic'},'Age','Weight')
legend
运行程序后,输出如下图所示图形:


图 2 三维散点图(表数据)

相关文章