功能.本章主要介紹2維圖形對象的生成函數(shù)及圖形控制函數(shù)的使用方 法,還將
簡單地介紹一些圖形的修飾與標(biāo)注函數(shù)及操作和控制MATLAB各種圖形對象的
方法.
第一節(jié) 圖形窗口與坐標(biāo)系
一.圖形窗口
1.MATLAB在圖形窗口中繪制或輸出圖形,因此圖形窗口就像一張繪圖紙.
2. 在MATLAB下,每一個圖形窗口有唯一的一個序號h,稱為該圖形窗口的
句柄.MATLAB通過管理圖形窗口的句柄來管理圖 形窗口;
3.當(dāng)前窗口句柄可以由MATLAB函數(shù)gcf獲得;
4.在任何時刻,只有唯一的一個窗口是當(dāng)前的圖形 窗口(活躍窗口);
figure(h)----將句柄為h的窗口設(shè)置為當(dāng)前窗口;
5.打開圖形窗口的方法有三種:
1)調(diào)用 繪圖函數(shù)時自動打開;
2)用File---New---Figure新建;
3)figure命令打開,close命令關(guān) 閉.
在運行繪圖程序前若已打開圖形窗口,則繪圖函數(shù)不再打開,而直接利用已
打開的圖形窗口;若運行程序前已存在多個圖形窗 口,并且沒有指定哪個窗
口為當(dāng)前窗口時,則以最后使用過的窗口為當(dāng)前窗口輸出圖形.
6.窗口中的圖形打印:用圖形窗口的File菜單中 的Print項.
7.可以在圖形窗口中設(shè)置圖形對象的參數(shù).具體方法是在圖形窗口的Edit菜
單中選擇Properties項,打開圖 形對象的參數(shù)設(shè)置窗口,可以設(shè)置對象的屬
性.
二.坐標(biāo)系
1.一個圖形必須有其定位系統(tǒng),即坐標(biāo)系;
2.在一個圖形 窗口中可以有多個坐標(biāo)系,但只有一個當(dāng)前的坐標(biāo)系;
3.每個坐標(biāo)系都有唯一的標(biāo)識符,即句柄值;
4.當(dāng)前坐標(biāo)系句柄可以由 MATLAB函數(shù)gca獲得;
5.使某個句柄標(biāo)識的坐標(biāo)系成為當(dāng)前坐標(biāo)系,可用如下函數(shù):axes(h) h為指
定坐標(biāo)系句柄值.
6.一些有關(guān)坐標(biāo)軸的函數(shù):
1)定義坐標(biāo)范圍:一般MATLAB自動定義坐標(biāo)范 圍,如用戶認為設(shè)定的不
合適,可用:axis([Xmin, Xmax, Ymin, Ymax]) 來重新設(shè)定;
29
2) 坐標(biāo)軸控制:MATLAB的缺省方式是在繪圖時,將所在的坐標(biāo)系也畫出
來,為隱去坐標(biāo)系,可用axis off;axis on則顯示坐標(biāo)軸
(缺省值).
3)通常MATLAB的坐標(biāo)系是長方形,長寬比例大約是 4:3,為了得到一個
正方形的坐標(biāo)系可用:axis square
4)坐標(biāo)系橫縱軸的比例是自動設(shè)置的,比例可能不一樣,要得到相同比 例
的坐標(biāo)系,可用:axis equal
第二節(jié) 二維圖形的繪制
一. plot函數(shù)
plot函數(shù)是最基本的繪圖函數(shù),其基本的調(diào)用格式為:
1.plot(y)------繪制向量y對應(yīng)于其元素序數(shù)的二維曲線圖, 如果y為復(fù)數(shù)向量,
則繪制虛部對于實部的二維曲線圖.
例:繪制單矢量曲線圖.
y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20];
plot(y)
由于y矢量有10個元素,x坐標(biāo)自動定義為[1 2 3 4 5 6 7 8 9 10].圖形為:
12345678910
0
2
4
6
8
10
12
14
16
18
20
2.plot(x,y)------ 繪制由x,y所確定的曲線.
1)x,y是兩組向量,且它們的長度相等,則plot(x,y)可以直觀地繪出以x為
橫坐標(biāo),y為縱坐標(biāo)的 圖形.
如:畫正弦曲線:
t=0:0.1:2*pi;
y=sin(t);
plot(t,y)
2)當(dāng) plot(x,y)中,x是向量,y是矩陣時,則繪制y矩陣中各行或列對應(yīng)于
30
向量x的曲線.如果y陣中行的長度與x向量的 長度相同,則以y的行
數(shù)據(jù)作為一組繪圖數(shù)據(jù);如果y陣中列的長度與x向量的 長度相同,則
以y的列數(shù)據(jù)作為一組繪圖數(shù)據(jù);如果y陣中行, 列均與x向量的長度相
同,則以y的每列數(shù)據(jù)作為一組繪圖數(shù)據(jù).
例:下面的程序可同時繪出三條曲線.MATLAB在繪制多條曲 線時,會
按照一定的規(guī)律自動變化每條曲線的的顏色.
x=0:pi/50:2*pi;
y(1,:)=sin(x);
y(2,:)=0.6*sin(x);
y(2,:)=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)
01234567
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
3) 如果x,y是同樣大小的矩陣,則plot(x,y)繪出y中各列相應(yīng)于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;
![[轉(zhuǎn)載]matlab畫圖中線型及顏色設(shè)置 matlab畫圖線型](http://img.413yy.cn/images/31101031/31050345t0155df7f5b15e2f8cb.png)
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';
figure
31
plot(x,y)
在這個例子中,x------ 3x101,y------3x101,所以第一個plot按列畫出
101條曲線,每條3個點;而x'------101x3,y'------ 101x3,所以第二個plot
按列畫出3條曲線,每條101個點.
012345678
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
012345678
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
3. 多組變量繪圖:plot(x1, y1, 選項1, x2, y2, 選項2, ……)
上面的plot格式中,選項是指為了區(qū)分多條畫出曲線的 顏色,線型及標(biāo)記點
而設(shè)定的曲線的屬性.MATLAB在多組變量繪圖時,可將曲線以不同的顏
色,不同的線型及標(biāo)記點表示出來.這 些選項如下表所示:
各種顏色屬性選項
選 項 意 義 選 項 意 義
'r' 紅色 'm' 粉紅
'g' 綠色 'c' 青色
32
'b' 蘭色 'w' 白色
'y' 黃色 'k' 黑色
各種線型屬性選項
選 項 意 義 選 項 意 義
'-' 實線 '--' 虛線
':' 點線 '-.' 點劃線
各種標(biāo)記點屬性選項
選 項 意 義 選 項意 義
'.' 用點號繪制各數(shù)據(jù)點 '^' 用上三角繪制各數(shù)據(jù)點
'+' 用'+'號繪制各數(shù)據(jù)點 'v' 用下三角繪制各數(shù)據(jù)點
'*' 用'*'號繪制各數(shù)據(jù)點 '>' 用右三角繪制各數(shù)據(jù)點
' .' 用'.'號繪制各數(shù)據(jù)點 '<' 用左三角繪制各數(shù)據(jù)點
's'或squar 用正方形繪制各數(shù)據(jù)點'p' 用五角星繪制各數(shù)據(jù)點
'd'或diamond用菱 形繪制各數(shù)據(jù)點 'h' 用六角星繪制各數(shù)據(jù)點
這些選項可以連在一起用,如:'-.g'表示繪制綠色的點劃線,'g+'表示用綠
色的 '+'號繪制曲線.
注意:1)表示屬性的符號必須放在同一個字符串中;
2)可同時指定2~3個屬性;
3) 與先后順序無關(guān);
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中,如畫圖前已有打開的圖形窗口,則再畫圖系統(tǒng)將自動
擦 掉坐標(biāo)系中已有的圖形對象,但設(shè)置了hold on后,可以保持坐標(biāo)系中已繪出
的圖形.
33
01234567
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
圖(a)
還可以進一步設(shè)置包括線的寬度(LineWidth),標(biāo)記點的邊緣顏色
(MarkerEdgeColor),填充顏色 (MarkerFaceColor)及標(biāo)記點的大小(MarkerSize)
等其它繪圖屬性.
例:設(shè)置繪圖線的線型,顏色,寬度,標(biāo)記 點的顏色及大小.
t=0:pi/20:pi;
y=sin(4*t).*sin(t)/2;
plot(t,y,'-bs','LineWidth',2,... %設(shè)置線的寬度為2
'MarkerEdgeColor','k',... %設(shè)置標(biāo)記點邊緣顏色為黑色
'MarkerFaceColor','y',... %設(shè)置標(biāo)記點填充顏色為黃色
'MarkerSize',10) %設(shè)置標(biāo)記點的尺寸為10
繪出圖形如下:
00.511.522.533.5
-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
34
4. 雙Y軸繪圖:plotyy()函數(shù).
其調(diào)用格式為:
plotyy(x1,y1,x2,y2)------ 繪制由x1,y1和x2,y2確定的兩組曲線,其中x1,
y1的坐標(biāo)軸在圖形窗口的左側(cè),x2,y2的坐標(biāo)軸在
圖形窗口的右側(cè).
Plotyy(x1,y1,x2,y2,'function1','function2')------功能同上,function是指那些
繪圖函數(shù)如: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')
圖形如下:
024681012
0
0.5
1
1.5
024681012
0
0.5
1
1.5
stem: 繪制stem形式的曲線(上端帶圈的豎線).
繪圖結(jié)果:兩條圖線自動用不同的顏色區(qū)分,兩個坐標(biāo)的顏色與圖線的顏
色相對應(yīng),左邊的Y軸 坐標(biāo)對應(yīng)的是plot形式的曲線,右邊的Y坐標(biāo)對應(yīng)的
是stem形式的曲線.
二.對數(shù)坐標(biāo)圖繪制函數(shù):
在對數(shù)坐標(biāo)圖的繪制中,有三種繪圖函數(shù):semilogx,semilogy和loglog函
數(shù).
1)semilogx( )------繪制以X軸為對數(shù)坐標(biāo)軸的對數(shù)坐標(biāo)圖.
其調(diào)用格式為:semilogx(x,y,'屬性選項')
其 中屬性選項同plot函數(shù).
該函數(shù)只對橫坐標(biāo)進行對數(shù)變換,縱坐標(biāo)仍為線性坐標(biāo).
2)semilogy( )------繪制以Y軸為對數(shù)坐標(biāo)軸的對數(shù)坐標(biāo)圖.
其調(diào)用格式為:semilogy(x,y,'屬性選項')
該 函數(shù)只對縱坐標(biāo)進行對數(shù)變換,橫坐標(biāo)仍為線性坐標(biāo).
35
3)loglog( )------ 繪制X,Y軸均為對數(shù)坐標(biāo)軸的圖形.
其調(diào)用格式為:loglog(x,y,'屬性選項')
該函數(shù)分別對 橫,縱坐標(biāo)都進行對數(shù)變換.
例: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)MATLAB還提供了一個實用的函數(shù):logspace( )函數(shù),可按對數(shù)等間距地分
布來產(chǎn)生一個向量,其調(diào)用格式為:
x=logspace(x1,x2,n)
這里,x1 表示向量的起點;x2表示向量的終點;n表示需要產(chǎn)生向量點的
個數(shù)(一般可以不給出,采用默認值50).
在控制系統(tǒng)分析中一般采用這種 方法來構(gòu)成頻率向量w.關(guān)于它的應(yīng)用后面
還要講到.
三.極坐標(biāo)圖的繪制函數(shù):
繪 極坐標(biāo)圖可用polar( )函數(shù).其調(diào)用格式如下:
polar(theta, rho,'屬性選項')------theta:角度向量,rho:幅值向量,屬性
內(nèi)容與plot函數(shù)基本一致.
例如:極坐 標(biāo)模型為:3145/)/)cos((+ =θρ, ],[πθ80∈則繪出極坐標(biāo)圖
的程序為:theta=0:0.1:8*pi;
p=cos((5*theta)/4)+1/3;
polar(theta,p)
0.5
1
1.5
30
210
60
240
90
270
120
300
150
330
1800
四. 繪制多個子圖:subplot( )函數(shù)
MATLAB允許在一個圖形窗口上繪制多個子圖(如對于多變量 系統(tǒng)的輸
出),允許將窗口分成nxm個部分.
分割圖形窗口用subplot函數(shù)來實現(xiàn),其調(diào)用格式為:
subplot(n,m,k) 或subplot(nmk)------n,m分別表示將窗口分割的行數(shù)和列數(shù),
36
k表示要畫圖部分的代號,表示第幾個圖 形,nmk三個數(shù)可以連寫,中間不用
符號分開.
例如:將窗口劃分成2x2=4個部分,可以這樣寫:
subplot(2,2,1),plot(……)
subplot(2,2,2),……
subplot(2,2,3),……
subplot(2,2,4),……
221 222
223 224
注:subplot函數(shù)沒有畫圖功能,只是將窗口分割.
第三節(jié) 圖形的修飾與標(biāo)注
MATLAB提供了一些特殊的函數(shù)修飾畫出的圖形,這些函數(shù)如下:
1) 坐標(biāo)軸的標(biāo)題:title函數(shù)
其調(diào)用格式為:title('字符串')------字符串可以寫中文
如:title('My own plot')
2)坐標(biāo)軸的說明:xlabel和ylabel函數(shù)
格式:xlabel('字符串')
ylabel(' 字符串')
如:xlabel('This is my X axis')
ylabel('My Y axis')
3)圖形 說明文字:text和gtext函數(shù)
A.text函數(shù):按指定位置在坐標(biāo)系中寫出說明文字.
格 式為:text(x1, y1, '字符串', '選項')
x1,y1為指定點的坐標(biāo);'字符串'為要標(biāo)注的文字;'選項'決定x1,y1
的 坐標(biāo)單位,如沒有選項,則x1,y1的坐標(biāo)單位和圖中一致;如選項為'sc',
則x1,y1表示規(guī)范化窗口的相對坐標(biāo),其范圍為0到1.
(1,1)
規(guī)范化窗口
(0,0)
37
如:text(1,2, '正弦曲線')
B.gtext函數(shù):按照 鼠標(biāo)點按位置寫出說明文字.
格式為:gtext('字符串')
當(dāng)調(diào)用這個函數(shù)時,在圖形窗口中出現(xiàn)一個隨鼠標(biāo)移動的大十字 交叉線,
移動鼠標(biāo)將十字線的交叉點移動到適當(dāng)?shù)奈恢?點擊鼠標(biāo)左鍵,gtext參數(shù)中
的字符串就標(biāo)注在該位置上.
4) 給圖形加網(wǎng)格:grid函數(shù)
在調(diào)用時直接寫grid即可.
上面的函數(shù)的應(yīng)用實例:
例: 在圖形中加注坐標(biāo)軸標(biāo)識和標(biāo)題及在圖形中的任意位置加入文本.
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',16)
ylabel('sin(t)','FontSize',20)
title('正弦函數(shù)圖形','FontName',' 隸書' ,'FontSize',20)
text(pi,sin(pi),'leftarrowsin(t)=0','FontSize',16)
text(3*pi/4,sin(3*pi/4),'leftarrowsin(t)=0.707','FontSize',16)
text(5*pi/4,sin(5*pi/4),' sin(t)=-0.707rightarrow',...
'FontSize',16,'HorizontalAlignment','right')
畫出的圖形為:
0246
-1
-0.5
0
0.5
1
0 ≤ t ≤ π
sin(t)
正 弦函數(shù)圖形
←sin(t)=0
←sin(t)=0.707
sin(t)=-0.707→
5) 在圖形中添加圖例框:legend函數(shù)
其調(diào)用格式為:
A.legend('字符串1', '字符串2', ……)------以字符串1,字符串2…… 作
38
為圖形標(biāo)注的圖例.
B.legend('字符串1', '字符串2', ……, pos)------pos指定圖例框顯示的位置.
圖例框被預(yù)定了6個顯示位置:
0------ 取最佳位置;
1------右上角(缺省值);
2------左上角;
3------左下角;
4------右 下角;
-1------圖的右側(cè).
例:在圖形中添加圖例.
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')
繪出圖形如下:
02468
-1
-0.5
0
0.5
1
曲 線1
曲線2
曲線3
6)用鼠標(biāo)點選屏幕上的點:ginput函數(shù)
格式為: [x, y, button]=ginput(n)
其中:n為所選擇點的個數(shù);x,y均為向量,x為所選n個點的橫坐標(biāo);
y為所選n個 點的縱坐標(biāo).
button為n維向量,是所選n個點所對應(yīng)的鼠標(biāo)鍵的標(biāo)號:
1------左鍵;
2------中鍵;
3------ 右鍵.
可用不同的鼠標(biāo)鍵來選點,以區(qū)別所選的點.
此語句可以放在繪圖語句之后,它可在繪出的圖形上操作,選擇你所感
興趣的 點,如峰值點,達到穩(wěn)態(tài)值的點等,給出點的坐標(biāo),可求出系統(tǒng)的
性能指標(biāo).
39
第四節(jié) MATLAB下圖形對象的修改
MATLAB圖形對象是指圖形系統(tǒng)中最基本,最底層的單元,這些對象包括:
屏幕(Root),圖形窗口(Figures), 坐標(biāo)軸(Axes),控件(Uicontrol),菜單(Uimenu),
線(Lines),塊(Patches),面(Surface),圖像 (Images),文本(Text)等等.
根據(jù)各對象的相互關(guān)系,可以構(gòu)成如下所示的樹狀層次:
Root
Figures
Axes Uicontrol Uimenu Uicontextmenu (對象菜單)
Images Line Patch Surface Text
對各種圖形對象進行修改和控制,要使用MATLAB的圖形對象句柄
(Handle).在MATLAB中, 每個圖形對象創(chuàng)立時,就被賦予了唯一的標(biāo)識,這
個標(biāo)識就是該對象的句柄.
句柄的值可以是一個數(shù),也可以是一個矢量.如每個計算機的根對 象只有
一個,它的句柄總是0,圖形窗口的句柄總是正整數(shù),它標(biāo)識了圖形窗口的序號
等.
利用句柄可以操縱一個已經(jīng)存在的圖形對象 的屬性,特別是對指定圖形對
象句柄的操作不會影響同時存在的其它圖形對象,這一點是非常重要的.
一.對圖形對象的修改可以用下面函數(shù):
1)set函數(shù):用于設(shè)置句柄所指的圖形對象的屬性.
Set函數(shù)的格式為:
set(句柄, 屬性名1, 屬性值1, 屬性名2, 屬性值2, ……)
例:h=plot(x,y)
set(h, 'Color', [1,0,0])------將句柄所指曲線的顏色設(shè)為紅色.
2)get函數(shù):獲取指定句柄的圖形對象指定屬性的當(dāng)前值.
格 式為:get(句柄, '屬性名')
如: get(gca, 'Xcolor')------獲得X軸的當(dāng)前顏色屬性值.
執(zhí)行后可返 回X軸的當(dāng)前顏色屬性值[0,0,0](黑色).
3)如果沒有設(shè)置句柄,則可以使用下列函數(shù)獲得:
gcf:獲得當(dāng)前圖形窗 口的句柄;
gca:獲得當(dāng)前坐標(biāo)軸對象的句柄;
gco:獲得當(dāng)前對象的句柄.
如:
A.要對圖形窗口的底色進行修 改,可用:
set(gcf, 'Color', [1,1,1])------將圖形窗口底色設(shè)為白色
B.要把當(dāng)前X軸的顏色改為綠 色,可用:
set(gca, 'Xcolor', [0,1,0])
40
C.還可對坐標(biāo)軸的顯示刻度進行定義:
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'])
-pi-pi/20pi/2pi
-1
-0.5
0
0.5
1
本例中用'xtick'屬性設(shè)置x軸 刻度的位置(從-pi~pi,間隔pi/2,共設(shè)置
5個點),用'xticklabel'來指定刻度的值,由于通常習(xí)慣于用角度度量三角函
數(shù), 因此重新設(shè)置['-pi','-pi/2','0','pi/2','pi']5個刻度值.
二.一些常用的屬性如下:
1)Box屬 性:決定圖形坐標(biāo)軸是否為方框形式,選項為'on'(有方框),
'off'(無方框);
2)'ColorOrder'屬性:設(shè)置多條曲 線的顏色順序,默認值為:
[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)坐標(biāo)軸方向?qū)?性:'Xdir','Ydir','Zdir',其選項為:
'normal'------正常
'reverse'------反向
4) 坐標(biāo)軸顏色和線型屬性:'Xcolor','Ycolor','Zcolor'------ 軸顏色,
值為顏色向量
'LineWidth'------ 軸的線寬,值為數(shù)字
'Xgrid','Ygrid','Zgrid'------坐標(biāo)軸上是
否加網(wǎng)格,值為'on'和'off'.
5)坐標(biāo)軸的標(biāo)尺屬性:'Xtick','Ytick','Ztick'------ 標(biāo)度的位置,值為
向量
'Xticklabel','Yticklabel','Zticklabel'------ 軸上
標(biāo)度的符號,它的值為與標(biāo)度位置向量同樣大
小(向量個數(shù)相同)的向量.
5)字體設(shè)置屬 性:'FontAngle'------ 設(shè)置字體角度,選項為:
41
'normal'------ 正常;
'italic'------ 斜體;
'oblique'------ 傾斜;
'FontName'------ 字體名稱;
'FontSize'------ 字號大小
'FontWeight'------ 字體的輕重,選項為:'light',
'normal','bold'
愛華網(wǎng)


