有时候需要在matlab scatter绘图中显示不同颜色区分,如下图是人体血压高压、低压与年龄关系的散点图。
红色点表示高压
绿色点表示低压
用 matlab 如何实现呢?
1.创建一维矩阵x,y1,y2 分别表示年龄、高压和低压
x=[75;78;51;82;77;88;41;78;78;61;71;74;62;81;75;64;80;72;51;80;56;73]
y1=[208;146;168;149;208;102;130;155;163;154;145;147;143;161;145;120;153;158;123;163;177;148]
y2=[111;80;115;74;85;71;77;89;90;90;90;77;86;90;74;78;98;87;81;76;94;99]
2.调用scatter方法
%绘制高压散点图,红色填充
>> scatter(x,y1,\'r\',\'field\')
%保有已绘制图形
>> hold on
%绘制低压散点图,绿色填充
>> scatter(x,y2,\'b\',\'field\')
或者使用半角逗号连接多个方法
>> scatter(x,y1,\'r\',\'field\'),scatter(x,y2,\'b\',\'field\')
3.scatter用法:
scatter(x,y)scatter(x,y,sz)scatter(x,y,sz,c)scatter(x,y,sz,c,type)
x: x轴坐标数据
y: y轴坐标数据
sz: 图中标记大小,默认大小为36
c: 标记颜色
| 长名称 | 短名称 | RGB 三元数 |
|---|---|---|
\'yellow\' |
\'y\' |
[1 1 0] |
\'magenta\' |
\'m\' |
[1 0 1] |
\'cyan\' |
\'c\' |
[0 1 1] |
\'red\' |
\'r\' |
[1 0 0] |
\'green\' |
\'g\' |
[0 1 0] |
\'blue\' |
\'b\' |
[0 0 1] |
\'white\' |
\'w\' |
[1 1 1] |
\'black\' |
\'k\' |
[0 0 0] |
type: 标记形状
| 值 | 说明 |
|---|---|
\'o\' |
圆圈 |
\'+\' |
加号 |
\'*\' |
星号 |
\'.\' |
点 |
\'x\' |
叉号 |
\'square\' 或 \'s\'
|
方形 |
\'diamond\' 或 \'d\'
|
菱形 |
\'^\' |
上三角 |
\'v\' |
下三角 |
\'>\' |
右三角 |
\'<\' |
左三角 |
\'pentagram\' 或 \'p\'
|
五角星(五角形) |
\'hexagram\' 或 \'h\'
|
六角星(六角形) |
\'none\' |
无标记 |