在MATLAB中自动绘制不同颜色的线条
MATLAB会自行处理绘图的颜色,因为它具有这样的功能。这意味着,当用户在一个图中绘制多条线时,MATLAB会根据MATLAB本身的一些计算结果给每条线赋予不同的颜色。但是,如果用户希望改变这些颜色,MATLAB也提供了这个选项。在本文中,我们将通过一个例子来了解MATLAB如何自行绘制不同颜色的线条,以及我们如何自动改变这些颜色。
MATLAB控制的不同颜色线
让我们绘制多条正弦和余弦曲线,看看MATLAB如何处理这些曲线的颜色。
示例 1:
% MATLAB code for plot
% X-coordinates
x = linspace(-1,1.5);
y1 = sin(x);
y2 = cos(x);
figure
plot(x,y1,x,y2)
hold on
plot(sin(x))
plot(sin(x*2))
plot(cos(x))
plot(cos(x*2))
hold off
输出:
保持 “参数用于将不同的曲线绘制在同一幅图中,而绘图命令中的线宽参数可以扩大曲线的宽度,以提高曲线的可见度。在上面的代码中,我们正在绘制4条曲线
- sin(x)
- sin(x2)
- cos(x)
- cos(x2)
可以看出,MATLAB在处理这些曲线的颜色映射时没有任何错误。有多少条曲线,就有多少种可能的RGB颜色组合,这一点是真实的。现在我们来看看如何设置MATLAB通过从用户定义的代码中获取色序来自动绘制不同的颜色线。
自动绘制不同颜色的线条
我们将使用MATLAB轴的颜色映射属性,用均匀分布的随机数绘制不同的颜色。为此,我们需要在[0,1]
范围内创建一个n乘3的随机数数组,因为这是RGB值范围。然后,我们将把它作为参数传递给colororder(),以定义我们的n个图的颜色。
语法:
colors = rand([n 3])
colororder(colors)
示例 2:
% MATLAB code for plot different colour line
% x-data
x=linspace(-1,1);
% Random color combinations
colors = rand([100 3]);
% Adding colors to color order
colororder(colors)
% Plotting plots with new colororder
hold on
plot(sin(x),LineWidth=3)
plot(sin(x*2),LineWidth=3)
plot(cos(x),LineWidth=3)
plot(cos(x*2),LineWidth=3)
hold off
% Adding legend
legend
输出:
解释:
这里,颜色数组是一个范围为0-1的随机数数组。数组中的三列定义了一行的R、G、B颜色代码值,它被用作一条图线的颜色。
注意: 这种生成颜色的方法总是会给绘图带来不同的颜色,因为RGB颜色值是由随机数定义的,是随机
的。这种方法的随机性使得MATLAB可以自动选择图线的颜色。这种方法的好处是,每次运行上述代码时,都会为我们的图线产生新的颜色组合,因为颜色顺序是由随机数定义的。