我正在寻找一种方法,最好是GUI,来全局更改默认的线条颜色,它们的顺序和类型。
我想指定第一行是这个颜色,这个类型和这个宽度;第二行是那种颜色,那种类型和那个宽度;等等。
可能是行名称为行号(第一行,第二行等),第二列中指定的颜色,第三列中的类型以及第四列中的宽度。这样的事情。
解决这个问题的好方法是什么?
答案 0 :(得分:3)
这不完全是您要查找的自定义,但您可以使用默认设置颜色和 ( - , - 。,等等)分别为DefaultAxesColorOrder
和DefaultAxesLineStyleOrder
:
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线图。