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

MATLAB scatter():创建散点图(附带实例)

散点图是研究两个变量之间关系的工具,在 MATLAB 中,利用函数 scatter() 可以创建散点图,其调用格式如下。
1) 向量和矩阵数据:
scatter(x,y) % 在向量 x 和 y 指定的位置创建一个包含圆形标记的散点图
             % 要绘制一组坐标点,请将 x 和 y 指定为等长向量
             % 要在同一组坐标区上绘制多组坐标点,请将 x 或 y 中的至少一个指定为矩阵
scatter(x,y,sz) % 指定点(圆)的大小。若 sz 为标量,则所有点(圆)具有相同的大小
                % 若 sz 为向量或矩阵,则绘制不同大小的点
scatter(x,y,sz,c) % 指定圆的颜色
scatter(,'filled') % 填充圆
scatter(,mkr) % 指定标记类型

2) 表数据:
scatter(tbl,xvar,yvar) % 绘制表 tbl 中的变量 xvar 和 yvar
                       % 要绘制一个数据集,请为 xvar、yvar 各指定一个变量
                       % 要绘制多个数据集,请为 xvar、yvar 或两者指定多个变量
scatter(tbl,xvar,yvar,'filled') % 用实心圆绘制表中的指定变量

【实例】创建散点图(向量数据)。在编辑器中编写以下程序并运行:
subplot(2,2,1)
x=linspace(0,4*pi,200); % 创建 0~4π 之间的 200 个等间距值 x
y=cos(x)+rand(1,200); % 创建带随机干扰的余弦值 y
c=linspace(1,10,length(x)); % 指定圆圈的颜色
sz=25; % 指定圆圈标记的大小
scatter(x,y,[],c)

subplot(2,2,2)
scatter(x,y,sz,c,'filled')

subplot(2,2,3)
theta=linspace(0,2*pi,100);
x=sin(theta)+0.75*rand(1,100);
y=cos(theta)+0.75*rand(1,100);
sz=40;
scatter(x,y,sz,'d',...    % 设置标记符号颜色
    'MarkerEdgeColor',[0 .5 .5],...    % 设置标记面颜色
    'MarkerFaceColor',[0 .7 .7],...    % 设置线条宽度
    'LineWidth',1.5) % 指定标记符号

subplot(2,2,4)
x=randn(500,1);
y=randn(500,1);
s=scatter(x,y,'filled'); % 用填充的标记创建散点图
distfromzero=sqrt(x.^2+y.^2);
s.AlphaData=distfromzero; % 根据数据与零的距离设置每个点的不透明度
s.MarkerFaceAlpha='flat';
运行程序后,输出如下图所示图形:


图 1 散点图(向量数据)

【实例】创建散点图(表数据)。在编辑器中编写以下程序并运行:
tbl=readtable('patients.xls'); % 以表 tbl 的形式读取 patients.xls
subplot(1,2,1)
scatter(tbl,'Systolic','Diastolic'); % 绘制变量

subplot(1,2,2)
scatter(tbl,'Weight',{'Systolic','Diastolic'}); % 同时绘制多个变量
legend
运行程序后,输出如下图所示的图形:


图 2 散点图(表数据)

相关文章