Matlab默认颜色顺序和类型

时间:2016-01-14 18:45:59

标签: matlab matlab-guide

我正在寻找一种方法,最好是GUI,来全局更改默认的线条颜色,它们的顺序和类型。

我想指定第一行是这个颜色,这个类型和这个宽度;第二行是那种颜色,那种类型和那个宽度;等等。

可能是行名称为行号(第一行,第二行等),第二列中指定的颜色,第三列中的类型以及第四列中的宽度。这样的事情。

解决这个问题的好方法是什么?

1 个答案:

答案 0 :(得分:3)

这不完全是您要查找的自定义,但您可以使用默认设置颜色 ( - , - 。,等等)分别为DefaultAxesColorOrderDefaultAxesLineStyleOrder

myColorOrder =  [    
    0         0.4470    0.7410   % rgb triplet
    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]

set(groot,'DefaultAxesColorOrder',myColorOrder,...
      'DefaultAxesLineStyleOrder','-|--|:|-.')

Z = peaks;
x = 1:length(Z);
y = Z(4:7,:);
plot(x,y)

3列矩阵myColorOrder中的行包含描述颜色的RGB三元组,此矩阵的行排序对应于设置DefaultAxesColorOrder属性时的线颜色顺序。默认线型(设置为DefaultAxesLineStyleOrder属性)是包含由|分隔的线型的单个字符串。

请注意,在设置多种颜色和线条样式时,绘图将循环如下:

  • 对于第一线样式:循环使用所有颜色
  • 更改为下一行样式:循环显示所有颜色
  • ...

详情请见

如果您真的想要自定义,您可能需要编写一个绘图包装器来自定义绘图线规格,而不是手动方式"但是由包装器巧妙地执行。参见例如the code for Arrow3 by Tom Davis

  

如果是LineStyle,将使用当前的LineStyleOrder属性   用' *'指定。 MATLAB循环定义的线型   只有在使用了由...定义的所有颜色后才能使用LineStyleOrder属性   ColorOrder属性。但是,如果是全局变量LineWidthOrder   已定义,LineWidth用' /'指定,然后每行   用连续的颜色,线条样式和线宽绘制。

可能你可以利用汤姆戴维斯'接近并应用于Matlab线图。