Matlab教程2_ 繪圖 _ 二維

(做者:--)   函數

Matlab 二維圖形的繪製 性能


本章主要介紹2維圖形對象的生成函數及圖形控制函數的使用方 法,還將 簡單地介紹一些圖形的修飾與標註函數及操做和控制MATLAB各類圖形對象的 方法.  字體

 

第一節 圖形窗口與座標系  spa

一.圖形窗口  orm

1.MATLAB在圖形窗口中繪製或輸出圖形,所以圖形窗口就像一張繪圖紙.  對象

2. 在MATLAB下,每個圖形窗口有惟一的一個序號h,稱爲該圖形窗口的 句柄.MATLAB經過管理圖形窗口的句柄來管理圖 形窗口;  字符串

3.當前窗口句柄能夠由MATLAB函數gcf得到;  get

4.在任什麼時候刻,只有惟一的一個窗口是當前的圖形 窗口(活躍窗口);  input

figure(h)----將句柄爲h的窗口設置爲當前窗口;  it

5.打開圖形窗口的方法有三種: 

1)調用 繪圖函數時自動打開; 

2)用File---New---Figure新建; 

3)figure命令打開,close命令關 閉. 

在運行繪圖程序前若已打開圖形窗口,則繪圖函數再也不打開,而直接利用已 打開的圖形窗口;若運行程序前已存在多個圖形窗 口,而且沒有指定哪一個窗 口爲當前窗口時,則以最後使用過的窗口爲當前窗口輸出圖形. 

6.窗口中的圖形打印:用圖形窗口的File菜單中 的Print項. 

7.能夠在圖形窗口中設置圖形對象的參數.

具體方法是在圖形窗口的Edit菜 單中選擇Properties項,打開圖 形對象的參數設置窗口,能夠設置對象的屬 性. 

 

二.座標系 

1.一個圖形必須有其定位系統,即座標系; 

2.在一個圖形 窗口中能夠有多個座標系,但只有一個當前的座標系; 

3.每一個座標系都有惟一的標識符,即句柄值; 

4.當前座標系句柄能夠由 MATLAB函數gca得到; 

5.使某個句柄標識的座標系成爲當前座標系,可用以下函數:axes(h) h爲指 定座標系句柄值. 

6.一些有關座標軸的函數:

1)定義座標範圍:通常MATLAB自動定義座標範 圍,如用戶認爲設定的不 合適,可用:axis([Xmin, Xmax, Ymin, Ymax]) 來從新設定; 

2) 座標軸控制:MATLAB的缺省方式是在繪圖時,將所在的座標系也畫出 來,爲隱去座標系,可用axis off;axis on則顯示座標軸 (缺省值). 

3)一般MATLAB的座標系是長方形,長寬比例大約是 4:3,爲了獲得一個 正方形的座標系可用:axis square 

4)座標系橫縱軸的比例是自動設置的,比例可能不同,要獲得相同比 例 的座標系,可用:axis equal 

 

第二節 二維圖形的繪製 

一. plot函數 

plot 函數是最基本的繪圖函數,其基本的調用格式爲: 

1.plot(y)------繪製向量y對應於其元素序數的二維曲線圖, 若是y爲複數向量, 則繪製虛部對於實部的二維曲線圖. 

例:繪製單矢量曲線圖. 

y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20]; 

plot(y) 

因爲y矢量有10個元素,x座標自動定義爲[1 2 3 4 5 6 7 8 9 10].圖形爲: 

 

2.plot(x,y)------ 繪製由x,y所肯定的曲線. 

1)x,y是兩組向量,且它們的長度相等,則plot(x,y)能夠直觀地繪出以x爲 橫座標,y爲縱座標的 圖形. 

如畫正弦曲線: 

t=0:0.1:2*pi; y=sin(t); 

plot(t,y) 

2)當 plot(x,y)中,x是向量,y是矩陣時,則繪製y矩陣中各行或列對應於向量x的曲線.

若是y陣中行的長度與x向量的 長度相同,則以y的行 數據做爲一組繪圖數據;

若是y陣中列的長度與x向量的 長度相同,則 以y的列數據做爲一組繪圖數據;

若是y陣中行, 列均與x向量的長度相 同,則以y的每列數據做爲一組繪圖數據. 

例:下面的程序可同時繪出三條曲線.MATLAB在繪製多條曲 線時,會 按照必定的規律自動變化每條曲線的的顏色. 

x=0:pi/50:2*pi; 

y(1,:)=sin(x); 

y(2,:)=0.6*sin(x); 

y(3,:)=0.3*sin(x); 

plot(x,y) 

或者還能夠這樣用: 

x=0:pi/50:2*pi; 

y=[ sin(x); 0.6*sin(x); 0.3*sin(x)]; 

plot(x,y) 

 

3) 若是x,y是一樣大小的矩陣,則plot(x,y)繪出y中各列相應於x中各列的 圖形. 

例:

x(1,:)=0:pi/50:2*pi; 

x(2,:)=pi/4:pi/50:2*pi+pi/4; 

x(3,:)=pi/2:pi/50:2*pi+pi/2; 

y(1,:)=sin(x(1,:)); 

y(2,:)=0.6*sin(x(2,:));

y(3,:)=0.3*sin(x(3,:)); 

plot(x,y) 

x=x'; y=y'; 

plot(x,y) 

在這個例子中,x------ 3x101,y------3x101,因此第一個plot按列畫出 101條曲線,每條3個點;而x'------101x3,y'------ 101x3,因此第二個plot 按列畫出3條曲線,每條101個點. 

 

3. 多組變量繪圖:plot(x1, y1, 選項1, x2, y2, 選項2, ……) 

上面的plot格式中,選項是指爲了區分多條畫出曲線的 顏色,線型及標記點 而設定的曲線的屬性.MATLAB在多組變量繪圖時,可將曲線以不一樣的顏色,不一樣的線型及標記點表示出來.這 些選項以下表所示: 

各類顏色屬性選項 

'r' 紅色 

'm' 粉紅 

'g' 綠色 

'c' 青色

'b' 蘭色 

'w' 白色 

'y' 黃色 

'k' 黑色 

各類線型屬性選項

'-' 實線 

'--' 虛線 

':' 點線 

'-.' 點劃線 

'.' 用點號繪製各數據點 

'^' 用上三角繪製各數據點 

'+' 用'+'號繪製各數據點 

'v' 用下三角繪製各數據點 

'*' 用'*'號繪製各數據點 

'>' 用右三角繪製各數據點 

' .' 用'.'號繪製各數據點 

'<' 用左三角繪製各數據點 

's'或squar 用正方形繪製各數據點

'p' 用五角星繪製各數據點 

'd'或diamond用菱 形繪製各數據點 

'h' 用六角星繪製各數據點 

 

這些選項能夠連在一塊兒用,如:'-.g'表示繪製綠色的點劃線,'g+'表示用綠 色的 '+'號繪製曲線. 

注意:

1)表示屬性的符號必須放在同一個字符串中; 

2)可同時指定2~3個屬性; 

3)與前後順序無關; 

4)指定的屬性中,同一種屬性不能有兩個以上. 

例:

t=0:0.1:2*pi; 

y1=sin(t); 

y2=cos(t); 

y3=sin(t).*cos(t); 

plot(t,y1, '-r',t,y2, ':g',t,y3, '*b') 

該程序還能夠按下面的方式寫: 

t=0:0.1:2*pi; 

y1=sin(t); 

y2=cos(t); 

y3=sin(t).*cos(t); 

plot(t,y1, '-r')

hold on 

plot(t,y2, ':g') 

plot(t,y3, '*b') 

hold off 

注:在MATLAB中,如畫圖前已有打開的圖形窗口,則再畫圖系統將自動 擦 掉座標系中已有的圖形對象,但設置了hold on後,能夠保持座標系中已繪出 的圖形. 

還能夠進一步設置包括

線的寬度(LineWidth),

標記點的邊緣顏色(MarkerEdgeColor),

填充顏色 (MarkerFaceColor)及

標記點的大小(MarkerSize) 等其它繪圖屬性. 

例:

設置繪圖線的線型,顏色,寬度,標記 點的顏色及大小. 

t=0:pi/20:pi; 

y=sin(4*t).*sin(t)/2; 

plot(t,y,'-bs','LineWidth',2,...    %設置線的寬度爲2 

'MarkerEdgeColor','k',...             %設置標記點邊緣顏色爲黑色 

'MarkerFaceColor','y',...             %設置標記點填充顏色爲黃色 

'MarkerSize',10)                        %設置標記點的尺寸爲10 

  

4. 雙Y軸繪圖:plotyy()函數. 

其調用格式爲: 

plotyy(x1,y1,x2,y2)

繪製由x1,y1和x2,y2肯定的兩組曲線,其中x1, y1的座標軸在圖形窗口的左側,x2,y2的座標軸在 圖形窗口的右側. 

Plotyy(x1,y1,x2,y2, 'function1','function2')

功能同上,function是指那些 繪圖函數,

如plot,semilogx, loglog 等. 

例如:

在一個圖形窗口中繪製雙Y軸曲線. 

x=0:0.3:12; 

y=exp(-0.3*x).*sin(x)+0.5; 

plotyy(x,y,x,y,'plot','stem') 

stem: 繪製stem形式的曲線(上端帶圈的豎線). 

繪圖結果:兩條圖線自動用不一樣的顏色區分,兩個座標的顏色與圖線的顏 色相對應,左邊的Y軸 座標對應的是plot形式的曲線,右邊的Y座標對應的 是stem形式的曲線. 

                                        

二.對數座標圖繪製函數: 

在對數座標圖的繪製中,有三種繪圖函數:semilogx,semilogy和loglog函數. 

1)  semilogx( )

繪製以X軸爲對數座標軸的圖. 調用格式爲:semilogx(x,y,'屬性選項') 其 中屬性選項同plot函數. 

該函數只對橫座標進行對數變換,縱座標仍爲線性座標. 

2)  semilogy( )

繪製以Y軸爲對數座標軸的圖. 調用格式爲:semilogy(x,y,'屬性選項') 

該 函數只對縱座標進行對數變換,橫座標仍爲線性座標. 35 

3)  loglog( )

繪製X,Y軸均爲對數座標軸的圖形. 其調用格式爲:loglog(x,y,'屬性選項') 該函數分別對 橫,縱座標都進行對數變換. 

例:

x=0:0.1:6*pi; 

y=cos(x/3)+1/9; 

subplot(221), semilogx(x,y); 

subplot(222), semilogy(x,y); 

subplot(223), loglog(x,y); 

4)  logspace( )函數

可按對數等間距地分 布來產生一個向量,其調用格式爲: x=logspace(x1,x2,n) 

這裏,x1 表示向量的起點;x2表示向量的終點;n表示須要產生向量點的 個數(通常能夠不給出,採用默認值50). 

在控制系統分析中通常採用這種 方法來構成頻率向量w.關於它的應用後面 還要講到. 

 

三.極座標圖的繪製函數: 

繪極座標圖可用polar( )函數.其調用格式以下: 

polar(theta, rho,'屬性選項')

theta:角度向量,

rho:幅值向量,

屬性 內容與plot函數基本一致. 

例如:

極座標模型爲:3145/)/)cos((+ =θρ, ],[πθ80∈則繪出極座標圖的程序爲:

theta=0:0.1:8*pi; 

p=cos((5*theta)/4)+1/3; 

polar(theta,p) 

 

四. 繪製多個子圖:subplot( )函數 

MATLAB容許在一個圖形窗口上繪製多個子圖(如對於多變量 系統的輸 出),容許將窗口分紅nxm個部分. 

分割圖形窗口用subplot函數來實現,其調用格式爲: 

subplot(n,m,k) 或subplot(nmk)

n,m分別表示將窗口分割的行數和列數, 

k表示要畫圖部分的代號,表示第幾個圖 形,

nmk三個數能夠連寫,中間不用 符號分開. 

例如:

將窗口劃分紅2x2=4個部分,能夠這樣寫: 

subplot(2,2,1),plot(……) 

subplot(2,2,2),…… 

subplot(2,2,3),…… 

subplot(2,2,4),…… 

 

注:subplot函數沒有畫圖功能,只是將窗口分割. 

 

第三節 圖形的修飾與標註                                                                                                                                         

MATLAB提供了一些特殊的函數修飾畫出的圖形,這些函數以下: 

1)座標軸的標題:title函數 

其調用格式爲:title('字符串')

字符串能夠寫中文 

如:title('My own plot') 

2)座標軸的說明:xlabel和ylabel函數 

格式:xlabel('字符串') ylabel(' 字符串') 

如:xlabel('This is my X axis') ylabel('My Y axis') 

3)圖形 說明文字:text和gtext函數 

A.

text函數:按指定位置在座標系中寫出說明文字.

格式爲:text(x1, y1, '字符串', '選項') 

x1,y1爲指定點的座標;

'字符串'爲要標註的文字;

'選項'決定x1,y1 的 座標單位,如沒有選項,則x1,y1的座標單位和圖中一致;如選項爲'sc', 則x1,y1表示規範化窗口的相對座標,其範圍爲0到1. (1,1) 

規範化窗口 (0,0) 

 

如:text(1,2, '正弦曲線') 

 

B.

gtext函數:按照鼠標點按位置寫出說明文字. 

格式爲:gtext('字符串') 

當調用這個函數時,在圖形窗口中出現一個隨鼠標移動的大十字 交叉線, 移動鼠標將十字線的交叉點移動到適當的位置,點擊鼠標左鍵,gtext參數中的字符串就標註在該位置上. 

 

5)  給圖形加網格:grid函數 

在調用時直接寫grid便可. 

上面的函數的應用實例: 

例: 在圖形中加註座標軸標識和標題及在圖形中的任意位置加入文本. 

t=0:pi/100:2*pi; 

y=sin(t); 

plot(t,y),grid, axis([0 2*pi -1 1]);

xlabel('0 leq itt rm leq pi','FontSize',12);

ylabel('sin(t)','FontSize',12); 

title('正弦函數圖形','FontName',' 隸書' ,'FontSize',16); 

text(pi,sin(pi),'←sin(t)=0','FontSize',12); 

text(3*pi/4,sin(3*pi/4),'←sin(t)=0.707', 'FontSize',12);

text(5*pi/4,sin(5*pi/4),' sin(t)=-0.707→','FontSize',12,'HorizontalAlignment','right')

5) 在圖形中添加圖例框:legend函數 其調用格式爲: 

A.legend('字符串1', '字符串2', ……)

以字符串1,字符串2…… 做爲圖形標註的圖例. 

B.legend('字符串1', '字符串2', ……, pos)

pos指定圖例框顯示的位置. 

圖例框被預約了6個顯示位置: 

0------ 取最佳位置; 

1------右上角(缺省值); 

2------左上角; 

3------左下角; 

4------右 下角; 

-1------圖的右側. 

例:在圖形中添加圖例. 

x=0:pi/10:2*pi; 

y1=sin(x); 

y2=0.6*sin(x); 

y3=0.3*sin(x); 

plot(x,y1,x,y2,'-o',x,y3,'-*') 

legend('曲線1','曲線2','曲線3') 

6)  用鼠標點選屏幕上的點:ginput函數 

格式爲: [x, y, button]=ginput(n)

n爲所選擇點的個數;

x,y均爲向量,x爲所選n個點的橫座標; y爲所選n個 點的縱座標. 

button爲n維向量,是所選n個點所對應的鼠標鍵的標號: 1----左鍵; 2----中鍵; 3----右鍵. 可用不一樣的鼠標鍵來選點,以區別所選的點. 

此語句能夠放在繪圖語句以後,它可在繪出的圖形上操做,選擇你所感 興趣的 點,如峯值點,達到穩態值的點等,給出點的座標,可求出系統的 性能指標. 

 

第四節 MATLAB下圖形對象的修改 

MATLAB圖形對象是指圖形系統中最基本,最底層的單元,這些對象包括: 

屏幕(Root),

圖形窗口(Figures), 

座標軸(Axes),

控件(Uicontrol),

菜單(Uimenu), 

線(Lines),

塊(Patches),

面(Surface),

圖像 (Images),

文本(Text)等等. 

根據各對象的相互關係,能夠構成以下所示的樹狀層次: 

Root 

Figures 

Axes Uicontrol Uimenu Uicontextmenu (對象菜單) 

Images Line Patch Surface Text 

對各類圖形對象進行修改和控制,要使用MATLAB的圖形對象句柄 (Handle).在MATLAB中, 每一個圖形對象創立時,就被賦予了惟一的標識,這 個標識就是該對象的句柄. 句柄的值能夠是一個數,也能夠是一個矢量.如每一個計算機的根對 象只有 一個,它的句柄老是0,圖形窗口的句柄老是正整數,它標識了圖形窗口的序號 等. 

利用句柄能夠操縱一個已經存在的圖形對象 的屬性,特別是對指定圖形對 象句柄的操做不會影響同時存在的其它圖形對象,這一點是很是重要的. 

 

一.對圖形對象的修改能夠用下面函數: 

1)set函數:用於設置句柄所指的圖形對象的屬性. 

Set函數的格式爲: 

set(句柄, 屬性名1, 屬性值1, 屬性名2, 屬性值2, ……) 

例:h=plot(x,y) 

set(h, 'Color', [1,0,0])------將句柄所指曲線的顏色設爲紅色. 

 

2)get函數:獲取指定句柄的圖形對象指定屬性的當前值. 

格式爲:get(句柄, '屬性名') 

如: get(gca, 'Xcolor')------得到X軸的當前顏色屬性值.

執行後可返 回X軸的當前顏色屬性值[0,0,0](黑色). 

 

3)若是沒有設置句柄,則可使用下列函數得到: 

gcf:得到當前圖形窗 口的句柄; 

gca:得到當前座標軸對象的句柄; 

gco:得到當前對象的句柄. 

如: 

A.  要對圖形窗口的底色進行修 改,

可用set(gcf, 'Color', [1,1,1])------將圖形窗口底色設爲白色 

B.  要把當前X軸的顏色改成綠 色,

可用set(gca, 'Xcolor', [0,1,0]) 

C.  還可對座標軸的顯示刻度進行定義: 

t=-pi:pi/20:pi; 

y=sin(t); 

plot(t,y) 

set(gca,'xtick',[-pi:pi/2:pi],'xticklabel',['-pi','-pi/2','0','pi/2','pi']) 

 

本例中用'xtick'屬性設置x軸刻度的位置(從-pi~pi,間隔pi/2,共設置 5個點),用'xticklabel'來指定刻度的值,因爲一般習慣於用角度度量三角函數, 所以從新設置['-pi','-pi/2','0','pi/2','pi']5個刻度值. 

 

二.一些經常使用的屬性以下: 

1)Box屬 性:

決定圖形座標軸是否爲方框形式,選項爲'on'(有方框), 'off'(無方框); 

2)'ColorOrder'屬性:

設置多條曲 線的顏色順序,默認值爲: 

[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1] 

黃色 粉色 天藍 紅色 綠色 蘭色 

顏色向量還有:

[1 1 1]------白色;

[0 0 0]------黑色. 

 

3)座標軸方向屬性:

'Xdir','Ydir','Zdir',其選項爲: 

'normal'------正常 

'reverse'------反向 

 

4) 座標軸顏色和線型屬性:

'Xcolor','Ycolor','Zcolor'------ 軸顏色, 值爲顏色向量 

'LineWidth'------ 軸的線寬,值爲數字 

'Xgrid','Ygrid','Zgrid'------座標軸上是 否加網格,值爲'on'和'off'. 

 

5)座標軸的標尺屬性:

'Xtick','Ytick','Ztick'------ 標度的位置,值爲 向量 

'Xticklabel','Yticklabel','Zticklabel'------ 軸上標度的符號,它的值爲與標度位置向量一樣大 小(向量個數相同)的向量. 

 

6)字體設置屬 性:'FontAngle'------ 設置字體角度,選項爲: 

'normal'------ 正常; 

'italic'------ 斜體; 

'oblique'------ 傾斜; 

'FontName'------ 字體名稱; 

'FontSize'------ 字號大小 

'FontWeight'------ 字體的輕重,選項爲:'light', 'normal','bold'

相關文章
相關標籤/搜索