自定义颜色和线型订单

在 MATLAB 中,我们可以设置新的默认自定义订单,例如颜色顺序和线型订单。这意味着新订单将应用于应用这些设置后创建的任何图形。新设置将保持不变,直到 MATLAB 会话关闭或进行了新设置。

默认颜色和线条样式顺序

默认情况下,MATLAB 使用几种不同的颜色,只有实线样式。因此,如果调用 plot 绘制多条线,MATLAB 将通过颜色顺序交替绘制不同颜色的线条。

StackOverflow 文档

我们可以通过使用全局句柄 0 调用 get 来获取默认颜色顺序,然后使用此属性 DefaultAxesColorOrder

>> get(0, 'DefaultAxesColorOrder')
ans =
         0    0.4470    0.7410
    0.8500    0.3250    0.0980
    0.9290    0.6940    0.1250
    0.4940    0.1840    0.5560
    0.4660    0.6740    0.1880
    0.3010    0.7450    0.9330
    0.6350    0.0780    0.1840

自定义颜色和线条样式顺序

一旦我们决定设置自定义颜色顺序和线条样式顺序,MATLAB 必须交替使用两者。MATLAB 应用的第一个更改是颜色。当所有颜色都耗尽时,MATLAB 将从定义的线条样式顺序应用下一个线条样式,并将颜色索引设置为 1.这意味着 MATLAB 将再次开始交替显示所有颜色,但在其顺序中使用下一个线条样式。当所有线条样式和颜色都耗尽时,显然 MATLAB 开始使用第一种颜色和第一种线条样式从头开始循环。

在这个例子中,我定义了一个输入向量和一个匿名函数,使绘图数字更容易一些:

F = @(a,x) bsxfun(@plus, -0.2*x(:).^2, a);
x = (-5:5/100:5-5/100)';

要设置新颜色或新的线型订单,我们将 set 函数称为全局句柄 0,后跟属性 DefaultAxesXXXXXXX; XXXXXXX 可以是 ColorOrderLineStyleOrder。以下命令分别将新颜色顺序设置为黑色,红色和蓝色:

set(0, 'DefaultAxesColorOrder', [0 0 0; 1 0 0; 0 0 1]);
plot(x, F([1 2 3 4 5 6],x));

StackOverflow 文档

如你所见,MATLAB 仅交替显示颜色,因为默认情况下线型顺序设置为实线。当一组颜色耗尽时,MATLAB 将从颜色顺序中的第一种颜色开始。

以下命令设置颜色和线型订单:

set(0, 'DefaultAxesColorOrder', [0 0 0; 1 0 0; 0 0 1]);
set(0, 'DefaultAxesLineStyleOrder', {'-' '--'});
plot(x, F([1 2 3 4 5 6],x));

StackOverflow 文档

现在,MATLAB 使用颜色作为最常见的属性,通过不同的颜色和不同的线条样式进行交替。