2011-12-19 344 views
6

我有一個2D空間,其中定義了一個函數值(你可以把它看作是一個流形)。現在我使用contourf繪製函數值,並將顏色映射更改爲比噴射柔和的顏色。目前看起來相當不錯。如何改變matlab繪圖的線條顏色(如colormap)?

現在我想繪製一條線,代表我的空間隨着時間的推移狀態。這也可以使用plot命令。但是我想要進一步改進:現在隱藏一個額外的狀態(值爲0 ... 50)。我希望線條顏色根據這個隱藏狀態改變。因此,從某種意義上來說,將單獨的顏色映射應用到plot繪製的線上,例如在瀑布圖中。

這是(或類似的)可能使用matlab?

感謝

回答

2

看一看到從文件交換cline.m功能,我想這是你所需要的東西。

+0

這將做你想做的,假設你想要平坦的陰影。這也不漂亮。 – Nzbuu 2011-12-19 10:12:17

7

如果要使用插值着色或使顏色圖隨顏色變化,則要將數據繪製爲網格並適當設置edgecolor屬性。請注意,爲了將其繪製爲網格,您需要複製它,以使其在每個方向上的大小至少爲2。

h = mesh([X(:) X(:)], [Y(:) Y(:)], [Z(:) Z(:)], [C(:) C(:)], ... 
    'EdgeColor', 'interp', 'FaceColor', 'none'); 

您可能也想看看MeshStyle屬性,如果你想同時繪製多行。

該解決方案也比cline中使用的解決方案好得多,因爲它只創建一個圖形對象,而不是n

+0

我不確定,如果我正確理解你。我認爲'mesh'命令會產生3D圖。我希望它在2D中(從上面開始計算)。我爲Z座標設置了什麼值? – 2011-12-19 12:42:07

+1

設置Z座標爲0,並使用'view(2)'旋轉回標準XY視點。 – Nzbuu 2011-12-19 14:16:56

+0

此外,由@Adrian鏈接到的功能恰好實現了這一點。 – Nzbuu 2011-12-19 14:19:22

2

我可以推薦從文件交換Colored line entry。它具有良好的反饋,並使用顏色映射來定義顯示的顏色,我已在多個項目中成功使用它。

+0

正如@Nzbuu所提到的,這比[cline.m]漂亮(http://www.mathworks.com/matlabcentral/fileexchange/3747-cline-m),正是因爲它使用了一條連續的曲線(通過['mesh '](http://www.mathworks.com/help/matlab/ref/mesh.html))而不是['line'](http://www.mathworks.com/help/matlab/ref/line。 HTML)。如果你的生產線上有很多點,這也會使它更有效率。 – 2014-05-09 03:37:58