2013-10-11 248 views
2

如何繪製如下所示的圖形?Matlab圖形繪圖 - 圖例和帶標籤的曲線

這裏的圖例(綠色/藍色)在每條曲線上繪製了一些值(0.10到0.40)。有沒有可能的解決方案或提示來做到這一點?

圖參考:

enter image description here

+0

任何人都可以找到這個鏈接也HTTP參考/樣本圖像://postimg.org/image/qgaibu0jl/ – salmannsu

+2

你有什麼特別的困難?至少告訴我們你已經掌握了基礎知識 – Dan

+0

也許在Matlab幫助文件中讀到了「plot」。幾乎所有你需要的信息。此外,在Matlab中的快速谷歌陰謀選項將產生一些有用的提示。 – Shinobii

回答

2

繪製線內數據標籤是可能的clabel(等高線標籤),儘管這需要你與contour命令繪製你的數據。

儘管如果您不能將其繪製爲輪廓圖,那麼您應該可以將繪圖數據轉換爲輪廓矩陣格式,請參閱the contour algorithm上幫助頁底部的矩陣定義。這是一個簡單的2行向量,用於定義數據點,您應該能夠將此矩陣饋送到clabel函數中以在線打印數據標籤。

對於下面的示例 - 我使用plot命令繪製了3條線,將線條手柄保存在數組h中。然後,我創建從繪製數據的輪廓矩陣,所以例如,如果紅線有50個數據點,然後

C(1,1)=0.44; % data value to plot on the line 
C(2,1)=50; % number of data points 
C(1,2:51)=line1x; % x data points for the red line 
C(2,2:51)=line1y; % y data points for the red line 

我做到了手動測試的想法,但我敢肯定,你可以寫一個簡單的功能根據需要自動從數據創建矩陣。反正重複添加其他行的數據輪廓矩陣然後用等高線標籤命令

clabel(C,h) 

這給了我這個情節

plot with inline data values

+0

請您提供您的詳細資料編碼。我收到一個錯誤,如「使用輪廓出錯(第81行) Z必須大小爲2x2或更大。」 – salmannsu

+0

真的沒有編碼 - 我沒有使用輪廓函數。我只是使用繪圖生成3行,然後根據數據構建了一個輪廓矩陣,並將其與我的答案中的格式鏈接起來。然後我使用clabel將這些值插入到繪製的曲線中。 – Adrian

+0

不錯的一個!如果你可以發佈產生這個數字的代碼,這將是太棒了。謝謝! – marsei