【发布时间】:2016-01-14 18:45:59
【问题描述】:
我正在寻找一种方法,最好是 GUI,以全局更改默认线条颜色、它们的顺序和类型。
我想指定第一行是这个颜色、这个类型和这个宽度;第二行是那个颜色、那个类型和那个宽度;等等。
也许行名称是行号(第一行、第二行等)、第二列中指定的颜色、第三列中的类型和第四列中的宽度。像这样。
什么是解决这个问题的好方法?
【问题讨论】:
标签: matlab matlab-guide
我正在寻找一种方法,最好是 GUI,以全局更改默认线条颜色、它们的顺序和类型。
我想指定第一行是这个颜色、这个类型和这个宽度;第二行是那个颜色、那个类型和那个宽度;等等。
也许行名称是行号(第一行、第二行等)、第二列中指定的颜色、第三列中的类型和第四列中的宽度。像这样。
什么是解决这个问题的好方法?
【问题讨论】:
标签: matlab matlab-guide
这不完全是您正在寻找的自定义,但您可以使用分别为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 属性仅在使用由 颜色顺序属性。但是,如果全局变量 LineWidthOrder 已定义,并且 LineWidth 用 '/' 指定,那么每一行将 使用顺序颜色、线型和线宽绘制。
您可能可以利用 Tom Davis 的方法并将其应用于 Matlab 线图。
【讨论】: