在我们的学习工作中,为了直观、数据的比较及趋势的分析等,我们往往需要在一张图片中用不同的颜色绘制多条曲线。这篇文章介绍一下MATLAB在一张图片中用不同颜色绘制多条曲线的几个常用方法。
1、利用MATLAB的默认设置
这也是最简单的用法。比如,我们分别画一条正弦和余弦曲线。
t=linspace(0,5,500);
f=2;
x = sin(2*pi*f*t);
y = cos(2*pi*f*t);
plot(t,x,t,y);
ylim([-1.5,1.5]);
2、在plot函数中分别具体设定
如果不喜欢MATLAB的默认设置的颜色,我们可以具体指定。比如将上面1中的代码中的plot(t,x,t,y)改为plot(t,x,'b',t,y,'m').那么画出来的图像中x的颜色为蓝色,y为粉红色。也可以改为:
plot(t,x,'b');
hold on
plot(t,y,'m');
是一样的效果,可以根据实际中的使用情况定。
3、使用颜色矩阵
当需要画的曲线比较多时或者在循环中画图时,再用2中的一个一个具体指定就麻烦了。这个时候我们接可以把所希望用到的颜色定义为一个矩阵。MATLAB中颜色通过定义一个由介于 0.0 和 1.0 之间的值组成的三列矩阵来创建。第一列指定红色强度。第二列指定绿色强度。第三列指定蓝色强度。比如常用的几种颜色的如下表所示:
颜色 R G B
黑 0 0 0
蓝 0 0 1
绿 0 1 0
青蓝 0 1 1
红 1 0 0
深红 1 0 1
黄 1 1 0
白 1 1 1
我们在一张图片中画5条曲线。
t=linspace(0,5,500);
f=1;
C = [0 0 0; 0 0 1; 0 1 0; 0 1 1; 1 0 0 ];
for A=1:5
x = A * sin(2*pi*f*t);
plot(t,x,'color',C(A,:));
hold on
end
从图中可以看出,分别使用了我们程序中设置的黑、蓝、绿、青绿及红色。
4、使用colormap
colormap设定并查看当前图窗的颜色图。比如将3中的C改为C = colormap(hsv(5)) ;画出来的图形是什么样子呢?
将C = colormap(hsv(5)) ;改为C = colormap(winter(5));又会有什么样的效果呢?
hsv,winter等是MATLAB内置的颜色图。颜色图是由介于 0和 1之间的值组成的矩阵。颜色图可以无限长,但必须只有三列,表示红、黄、蓝分量的强度。
再比如输入代码:
surf(peaks)
colormap summer
这张图颜色图为summer。将颜色图更改为hsv会是什么效果呢?哇,东北大棉袄。
colormap详情请参考MATLAB官方文档。