假定下面的情況:給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));
但是同時第三情節確實有第二個圖的顏色,第四圖有4默認顏色,而不是第三。似乎MATLAB會更新下一個默認顏色順序的索引,無論它是否使用它。
雖然我知道我可以做get(groot,'DefaultAxesColorOrder')
獲取所有的默認顏色,然後將每個圖屬性設置爲我想要的索引,但我想知道是否有辦法告訴MATLAB 「嘿,對於下一個陰謀,不要更新該默認顏色索引「
現貨:如果您繪製與
line
第三行,這不增加由plot
使用的顏色順序索引你應該得到你想要的結果!適用於2014b –爲什麼不使用[記錄的屬性](https://es.mathworks.com/help/matlab/ref/axes-properties.html?searchHighlight=colororderindex&s_tid=doc_srchtitle)'ColorOrderIndex'?只需在plot之前設置(gca,'ColorOrderIndex',get(gca,'ColorOrderIndex') - 1)'。或者更好的是set(gca,'ColorOrderIndex',mod(get(gca,'ColorOrderIndex') - 2,size(get(gca,'ColorOrder'),1))+ 1)'循環。 Cc @AnderBiguri –
@LuisMendo爲什麼不確實...... :)有時答案是正確的你面前.... – matlabgui