2012-04-14 51 views
7

當我使用hold on在同一個繪圖上繪製幾條曲線時,每條曲線的默認顏色都是相同的(藍色)。我希望他們有不同的顏色。在MATLAB中繪圖時循環遍歷顏色

我看到的一種解決方案是製作一個顏色矢量,例如, c = ['k', 'g', 'r', ...]並循環它,但我不喜歡這個解決方案。如果我的圖的數量大於我的顏色矢量的長度c,我不想在每個文件中定義c,那麼情況會中斷。

有沒有更好的解決方案?

+0

可能重複://計算器。 com/questions/2028818 /自動繪製不同顏色的線) – chappjc 2014-04-12 18:59:02

回答

11

嘗試使用hold all代替。您的曲線應該自動在色彩映射上循環。從help hold

容納所有擁有圖形和當前行的顏色和線條樣式,以便 後續繪圖命令不要在ColorOrder和 LineStyleOrder屬性值復位到列表的開頭。繪製 命令將繼續循環執行預定義的顏色和 行中最後一個圖停止在列表中的樣式。

您可以使用get(gca,'ColorOrder')檢查色彩圖。

+0

非常好,我知道必須有一個簡單的解決方案。 – 2012-04-14 00:51:30

+0

來自同一頁:「保持全部保持不變」 注意:此語法將在未來版本中刪除,請使用hold on。 – 2016-07-11 12:14:03

3

你也可以改變對地球環境做默認'ColorOrder'屬性:

set(0,'DefaultAxesColorOrder',hsv(10)) 

,我更換了默認顏色爲一組由hsv顏色表給出的10種顏色。當然,您也可以使用顏色地圖顏色生成器(hsv,hot,cooper,, lines,...,使用doc colormap獲取更多詳細信息)放置任何其他顏色組,如以前一樣,或者僅放置任何nx 3矩陣。 如果你想使用的顏色列表:當前軸你會做{黑,綠,紅}:[自動繪製不同顏色的線(HTTP的

set(gca,'ColorOrder', [0 0 0; 1 0 0; 0 1 0])