11/22/2006

10.8.5 線上加文字-Contour指令

Contour等高線之應用


在圖中通常可用text指令在圖中加入字串,這些字串之位置由字串之範圍之方格中定義。實際上有些線加入文字可能更為清楚,此時可以使用盒框或填入區處理。例如:可以在等高線之應用上,標示文字之底色,使文字更容易閱讀。

在本例中,先利用meshgrid指令產生網絡點之位置,配合其對應點之函數求得z函數值。此處改用等高線contour指令,其語法如下:


contour(X,Y,Z)
[C,h] = contour(X,Y,Z,n,...,LineSpec)

等高線 CONTOUR(Z)之指令是以 Z矩陣值對應於一平面之高度繪出其等高之曲線。其等高之區間可由 V值指定,或由系統自動設定。CONTOUR(X,Y,Z) 中,其X與Y之值為平面座標 (x,y),由此可以利用SURF指令繪製圖表面之外形。X與Y之資料必須經由MESHGRID轉換或排序。指令中有時加一個N的參數,如 CONTOUR(Z,N)或CONTOUR(X,Y,Z,N),表示繪製 N條等高線,若使用V,則會以該值計算等高線數。V值之功能失效。

左邊之 [C,H] 參數中,C矩陣為CONTOURC,H 為指令等高線群之握把。利用此握把,可以在事後用 CLABEL指令設定其相關之參數。

等高線群之顏色是依其色譜決定,但是亦可利用指令中之 LINESPEC參數設定線型及顏色。其功能與一般之繪圖指令相同。

在等高線上,有一個與xlabel, ylabel功能相同之加文字功能稱為clabel,其語法如下:

clabel(C,h)
clabel(C,h,v)
clabel(C,'manual')
text_handles = clabel(...)
clabel(...,'PropertyName',propertyvalue,...)

clabel指令主要針對二維之等高線圖添加其高度標。其中C為高度之資料,可由等高線指令contour左側之參數產生,h為圖之握把,v為插入文字之區間。若選擇'manual'則表示可以使用滑鼠自行設定位置。只要滑鼠指向要加高度文字之位置,然後按return鍵即可。

例如:

%ex_03.m
% plot the contour texts
[x,y] = meshgrid(-1.5:.1:1.5);
z = x.^exp(-x.^2-y.^2);
[C,h] = contour(x,y,z);
clabel(C,h);




在指令函數clabel之輸入參數中,'PropertyName'是可以進一步針對圖的特徵進行調整,此項特性參數包括:

  • 'LabelSpacing':標示之間矩,如 48, 72
  • 'Fontsize': 文字大小,如 12, 15, 24
  • 'Color': 文字之顏色,如 'r', 'b'
  • 'Rotation':文字轉動之角度,如 0, 45, 60
  • 'BackgroundColor':底色,如 [1 1 .6](黃)[.7 .9 .7](綠)
  • 'EdgeColor':框之顏色,如 'red'
  • 'LineWidth':框之線j寬度,如前文所述
  • 'LineStyle':框之線型,如前文所述。