2012-07-21 186 views
5

沒有人知道除了預設顏色(即b,g,r,c,m,y,k)之外,用不同顏色繪製的命令或方式是什麼?我寧願用我自己的自定義顏色而不是這些....自定義顏色的Matlab繪圖

乾杯

回答

12

使用Color財產與ColorSpec三重:這裏

plot(x, y, 'Color', [0.5, 1.0, 0.0], 'LineStyle', '--') 

載體含有0.01.0之間的RGB值。文檔條目LineseriesColorSpec有關於此的更多信息。

+1

謝謝你!我在哪裏可以查找顏色圖來決定在代碼中輸入0到1之間的數字?我搜索了Lineseries,ColorSpec和Colormap,但看不到我想要的。從像素圖中選擇的常用方式是大於1. – kit 2012-07-21 18:55:24

+0

@kit:如果您有色圖(例如'hot'),IIRC則應使用'cmap = colormap'從色圖獲得色彩'k' ('熱'); CMAP(K,:)'。如果你的顏色值在0到255之間,那麼除以255得到正確的範圍。 – You 2012-07-21 19:04:04

+0

非常感謝你。我明白你的意思了。良好的學習... – kit 2012-07-21 21:09:02

0

From the matlab docs:

ColorOrder:m乘3 RGB矩陣值

顏色使用多線圖。定義繪圖 和plot3函數用於繪製每條線的顏色。如果您沒有用plot和plot3指定 線條顏色,則這些函數將循環顯示ColorOrder屬性中的每個線條的顏色。爲了 獲取當前ColorOrder,這可能會在啓動過程中進行設置,讓 屬性值:

GET(GCA,「ColorOrder」)請注意,如果軸NextPlot屬性是 替換(默認),高級別諸如在確定要使用的顏色之前重置 ColorOrder屬性的功能。如果您想要 MATLAB使用與默認不同的ColorOrder,請將 NextPlot設置爲replaceChildren。您也可以指定您自己的默認顏色指令 。

總之,這意味着你要的命令:

figure(); 
axis(); 
set(gca, 'colororder', <color matrix>, 'nextplot', 'replacechildren'); 
plot(x,y); 
+0

我得到了你的意思上設置什麼顏色順序。我試過以下命令。圖 集(gca,'colororder',[1,0.5,0.753],'nextplot','replacechildren'); plot(x,y) figure plot(x,z) 我不知道爲什麼我會爲第二個圖像再次獲取默認顏色,好像我沒有正確使用nextplot並替換孩子 – kit 2012-07-21 21:26:36

+0

您是否創建了軸在調用'set'之前用'axis()'調用對象? – Isaac 2012-07-21 21:50:58

+0

是的,我現在添加,但仍然獲得第二個情節的默認顏色。這是我的代碼:figure(); axis(); (gca,'colororder',[1,0.5,0.753],'nextplot','replacechildren'); plot(x,y) figure plot(x,z)axis()是做什麼的?我們爲什麼需要()?順便說一下,我在這裏粘貼matlab編碼時弄得一團糟。在粘貼我的代碼之前,我可以知道我需要添加什麼命令,並像你一樣適合灰色框嗎?我是這類論壇的新用戶。謝謝! – kit 2012-07-22 01:34:12