MATLAB 還有其他各種二維繪圖指令,以適合不同的應用,相關指令可列表如下:
指令 說明 errorbar 在曲線加上誤差範圍 fplot、ezplot 較精確的函數圖形 polar、ezpolar 極座標圖形 hist 直角座標質方圖(累計圖) rose 極座標質方圖(累計圖) compass 羅盤圖 feather 羽毛圖 area 面積圖(第五章「特殊圖形」介紹) stairs 階梯圖(第五章「特殊圖形」介紹) 上列的指令,只能用於二維繪圖,故將在本章介紹。還有一些較特殊的繪圖指令(可同時用於二維及三維繪圖),例如:長條圖、扇形圖、等高線圖、向量場圖等,以及面積圖、階梯圖(只能用於二維繪圖),由於他們性質類似於第五章「特殊圖形」的繪圖指令,故將併入該章再一起介紹。以下我們針對前述列表的指令舉例說明之。
如果已知資料的誤差範圍,就可用 errorbar 來表示。下例以 y 座標高度的 20% 作為做資料的誤差範圍:
對於變化劇烈的函數,可用 fplot 指令來進行較精確的取點作圖,此指令會對劇烈變化處進行較密集的取樣,例如:
有關 fplot 指令的詳細說明,可見本書姊妹作「MATLAB 程式設計:進階篇」 第八章第二 節「數學函數的作圖」。
若要產生極座標圖形,可用 polar 指令:
對於大量的資料,可用 hist 指令來繪製統計上常用的「質方圖」(Histogram),以顯示資料的分佈情況和統計特性。hist 指令可將資料依大小分成數堆,並將每堆的個數畫出。例如,欲將 10000 個由 randn 產生的正規分佈之亂數分成 25 堆,可進行如下:
由上圖可看出,質方圖可逼近這些亂數的機率分佈函數,而且當資料量越大時,逼近程度越高。(上例 set 指令將長條圖的邊緣設定成白色,詳細使用語法請參考本書第七章「握把式圖形及 GUI 設計」)
rose 和 hist 指令很接近,只不過是將資料大小視為角度,資料個數視為距離,並用極座標繪製表示。其產生圖形類似玫瑰花瓣,故以「rose」名之。舉例如下:
使用 compass 指令,可畫出一組以原點為起始點的向量圖,稱為「羅盤圖」,例如:
若只有一個引數輸入 z,則 compass 會將 z 的實部(即 real(z))做為 x 座標,將 z 的虛部(即 imag(z))做為 y 座標,再進行作圖。換句話說,compass(z) 即等效於 compass(real(z),imag(z))。因此上述四列程式碼可簡化為下列兩行:(為什麼?)
「羽毛圖」和「羅盤圖」很類似,唯一的差別是:羅盤圖的起始點為原點,而羽毛圖的起始點則是 (k, 0),k = 1~n ,其中 n 是向量個數。欲畫羽毛圖,可用 feather 指令,如下:
與 compass 指令一樣,feather(z) 等於 feather(real(z),imag(z))。
MATLAB程式設計:入門篇