假设有以下情况:
然而,尽管第三张图确实具有第二张图的颜色,但第四张图具有第四个默认颜色,而不是第三个。似乎无论是否使用它,MATLAB都会更新下一个默认颜色顺序的索引。
虽然我知道可以使用
hold on
plot(rand(1,20));
plot(rand(1,10));
plot(rand(1,20));
MATLAB将绘制3条线,每条线都有默认的颜色(例如红色、蓝色、黄色)。
现在,由于第二个图形较短,我想执行以下操作:
hold on
plot(rand(1,20));
pl=plot(rand(1,10));
plot(11:20,rand(1,10),'color',get(pl,'color') ...
,'LineStyle','--');
plot(rand(1,20));
然而,尽管第三张图确实具有第二张图的颜色,但第四张图具有第四个默认颜色,而不是第三个。似乎无论是否使用它,MATLAB都会更新下一个默认颜色顺序的索引。
虽然我知道可以使用
get(groot,'DefaultAxesColorOrder')
获取所有默认颜色,然后将每个图的属性设置为我想要的索引,但我想知道是否有一种告诉MATLAB "嘿,在下一个图中,请不要更新该默认颜色索引"的方法。
ColorOrderIndex
?在绘图之前,只需执行set(gca, 'ColorOrderIndex', get(gca, 'ColorOrderIndex')-1)
即可。或者最好执行set(gca, 'ColorOrderIndex', mod(get(gca, 'ColorOrderIndex')-2, size(get(gca, 'ColorOrder'),1))+1)
来循环使用。@AnderBiguri - Luis Mendo