2016-10-30 65 views
2

我想在這個圖像的頂部面板給出了使用我的計算數據與有限的輪廓標籤和和顏色繪製輪廓:如何繪製與選擇的顏色輪廓和格式化標籤

here

但是,我結束了一個略有不同的情節(見上圖中底部的情節)。 我想修改我的情節有以下三種規格

  1. 在2個或3位小數
  2. 刪除情節標籤中的區域中輪廓過於接近對方限制輪廓標籤。
  3. 疊加兩種顏色作爲第一個圖像

在這裏,是我的代碼:

f=load('fort.15'); 
ngridx=180; 
ngridy=180; 
x=f(:,3); 
y=f(:,4); 
z=f(:,5); 
xlin=linspace(min(x),max(x),ngridx); 
ylin=linspace(min(y),max(y),ngridy); 
[X,Y]=meshgrid(xlin,ylin); 
Z=griddata(x,y,z,X,Y,'linear'); 
[c,h] = contour(X,Y,Z,20); 
set(h,'LineWidth',2,'LineColor',rgb('SteelBlue'),'ShowText','on',... 
     'LabelSpacing',800) 
axis([0 6 -5 7]) 

我不是在Matlab的專家。請幫助我找到合適的情節。 我附上了我的數據文件here

回答

0

嗯,我只拿到了3 Deine其中顏色有改變(這裏scl)水平的2,你去好:

scl = 6.5; % switch color level; 
[c1,h1] = contour(X,Y,Z,scl:max(Z(:)),'Color','r'); 
hold on 
[c2,h2] = contour(X,Y,Z,min(Z(:)):scl,'Color','b'); 
clabel(c2,h2); 
axis([0 6 -5 7]) 

這裏的想法是從兩個builed你的陰謀輪廓對象,使用hold on命令。矢量scl:max(Z(:))定義在第一個輪廓中顯示的級別,並獲得紅色和無標籤。類似的邏輯適用於secound輪廓。 如果您想要標記一些紅色輪廓,或者將藍色標籤從藍色標籤中刪除,您需要用clabel函數中的h2替換爲您想標註的水平向量。如果你將在評論中具體說明,我會更新我的答案。

contour

更換標貼的格式,就很有可能以某種方式,但它確實不是小事,所以我把它現在。

+0

謝謝你的朋友。有用。但我需要更多的藍色輪廓線。我該怎麼做? – Saheer

+0

將'min(Z(:)):scl'更改爲'min(Z(:)):0.5:scl',例如... – EBH