Matlab绘制散点图(scatter函数)

Matlab中常使用 scatter函数 绘制散点图。

1. 基本语法

语法 参数 说明
scatter(x, y) x值和y值,指定为向量。x 和 y 必须是长度相等的向量。 在向量 x 和 y 指定的位置创建一个包含圆形的散点图。该类型的图形也称为气泡图。
scatter(x, y, sz) sz -> 标记面积。
36 (默认) 以平方磅为单位的标记面积。
标记面积的单位为平方磅。
指定圆大小。要绘制大小相等的圆圈,请将 sz 指定为标量。要绘制大小不等的圆,请将 sz 指定为长度等于 x 和 y 的长度的向量。
scatter(x, y, sz, c) c -> 标记颜色。 指定圆颜色。要以相同的颜色绘制所有圆圈,请将 c 指定为颜色名称或 RGB 三元组。要使用不同的颜色,请将 c 指定为向量或由 RGB 三元组组成的三列矩阵。
scatter(___,‘filled’) filled -> 用于填充标记内部的选项。 填充圆形。可以将 ‘filled’ 选项与前面语法中的任何输入参数组合一起使用。
scatter(___,mkr) mkr -> 标记类型。 指定标记类型。
scatter(___,Name, Value) Name, Value -> 名称-值对组参数
指定可选的、以逗号分隔的 Name, Value 对组参数。
Name 为参数名称,Value 为对应的值,Name 必须放在引号中。
可采用任意顺序指定多个名称-值对组参数,如Name1, Value1, …, NameN, ValueN 所示。
使用一个或多个名称-值对组参数修改散点图。例如,‘LineWidth’, 2 将标记轮廓宽度设置为 2 磅。
scatter(ax,___) ax -> 目标坐标区,指定为 Axes 对象、PolarAxes 对象或 GeographicAxes 对象。 将在 ax 指定的坐标区中,而不是在当前坐标区中绘制图形。选项 ax 可以位于前面的语法中的任何输入参数组合之前。
s = scatter(___) 返回 scatter 对象。在创建散点图后,以后可使用 s 对其进行修改。

2. 示例

2.1 绘制散点图
x = linspace(-2, 2, 100);
y = x .^ 2;  
scatter(x, y);

在这里插入图片描述

2.2 设置圆圈大小
x = linspace(-2, 2, 100);
y = x .^ 2;  
sz = linspace(1, 100, 100);
scatter(x, y, sz);

在这里插入图片描述

2.3 设置圆圈颜色

标记颜色,指定为下列形式之一:

  1. RGB 三元组或颜色名称 - 使用相同的颜色绘制所有标记。
  2. 由 RGB 三元组组成的三列矩阵 - 对每个标记使用不同的颜色。矩阵的每行为对应标记指定一种 RGB 三元组颜色。行数必须等于 x 和 y 的长度。
  3. 向量 - 对每个标记使用不同的颜色,并以线性方式将 c 中的值映射到当前颜色图中的颜色。c 的长度必须等于 x 和 y 的长度。要更改坐标区的颜色图,请使用 colormap 函数。

如果散点图中有三个点,并且您希望这些颜色成为颜色图的索引,请以三元素列向量的形式指定 c。
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]。此外,还可以按名称指定一些常见的颜色。下表列出长和短颜色名称选项以及对应的 RGB 三元组值。

选项 说明 对应的 RGB 三元组
‘red’ 或 ‘r’ 红色 [1 0 0]
‘green’ 或 ‘g’ 绿色 [0 1 0]
‘blue’ 或 ‘b’ 蓝色 [0 0 1]
‘yellow’ 或 ‘y’ 黄色 [1 1 0]
‘magenta’ 或 ‘m’ 品红色 [1 0 1]
‘cyan’ 或 ‘c’ 青蓝色 [0 1 1]
‘white’ 或 ‘w’ 白色 [1 1 1]
‘black’ 或 ‘k’ 黑色 [0 0 0]
x = linspace(-2, 2, 100);
y = x .^ 2;  
c = linspace(1,10,length(x));
scatter(x, y, [], c);

在这里插入图片描述

2.4 设置填充标记
x = linspace(-2, 2, 100);
y = x .^ 2;  
c = linspace(1,10,length(x));
scatter(x, y, [], c, 'filled');

在这里插入图片描述

2.5 设置标记符号

标记类型,指定为下表中列出的值之一。

说明 说明
‘o’ 圆圈 ‘+’ 加号
‘*’ 星号 ‘.’
‘x’ 叉号 ‘square’ 或 ‘s’ 方形
‘diamond’ 或 ‘d’ 菱形 ‘^’ 上三角
‘v’ 下三角 ‘>’ 右三角
‘<’ 左三角 ‘pentagram’ 或 ‘p’ 五角星(五角形)
‘hexagram’ 或 ‘h’ 六角星(六角形) ‘none’ 无标记
x = linspace(-2, 2, 100);
y = x .^ 2;  
scatter(x, y, '*');

在这里插入图片描述

2.6 绘制散点图的子图
x = linspace(-2, 2, 100);
y = x .^ 2;  

ax1 = subplot(2, 1, 1);
scatter(ax1, x, y)

ax2 = subplot(2, 1, 2);
scatter(ax2, x, y, 'filled', 'd')

在这里插入图片描述

发布了35 篇原创文章 · 获赞 37 · 访问量 4249

猜你喜欢

转载自blog.csdn.net/L_J_Kin/article/details/103933448