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 设置圆圈颜色
标记颜色,指定为下列形式之一:
- RGB 三元组或颜色名称 - 使用相同的颜色绘制所有标记。
- 由 RGB 三元组组成的三列矩阵 - 对每个标记使用不同的颜色。矩阵的每行为对应标记指定一种 RGB 三元组颜色。行数必须等于 x 和 y 的长度。
- 向量 - 对每个标记使用不同的颜色,并以线性方式将 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')