matlab中绘制多条曲线且区间不同(MATLAB用不同颜色绘制多条曲线)
matlab中绘制多条曲线且区间不同(MATLAB用不同颜色绘制多条曲线)ylim([-1.5 1.5]);plot(t x t y);f=2;x = sin(2*pi*f*t);y = cos(2*pi*f*t);
在我们的学习工作中,为了直观、数据的比较及趋势的分析等,我们往往需要在一张图片中用不同的颜色绘制多条曲线。这篇文章介绍一下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]);
MATLAB默认设置
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)) ;画出来的图形是什么样子呢?
hsv
将C = colormap(hsv(5)) ;改为C = colormap(winter(5));又会有什么样的效果呢?
winter
hsv winter等是MATLAB内置的颜色图。颜色图是由介于 0和 1之间的值组成的矩阵。颜色图可以无限长,但必须只有三列,表示红、黄、蓝分量的强度。
再比如输入代码:
surf(peaks)
colormap summer
summer
这张图颜色图为summer。将颜色图更改为hsv会是什么效果呢?哇,东北大棉袄。
hsv
colormap详情请参考MATLAB官方文档。