在繪制圖形時(shí),Matlab可以自動(dòng)根據(jù)要繪制曲線數(shù)據(jù)的范圍選擇合適的坐標(biāo)刻度,使得曲線能夠盡可能清晰的顯示出來(lái)。所以,一般情況下用戶不必選擇坐標(biāo)軸的刻度范圍。但是,如果用戶對(duì)坐標(biāo)不滿意,可以利用axis函數(shù)對(duì)其重新設(shè)定。其調(diào)用格式為
axis([xmin xmax ymin ymax zmin zmax])
如果只給出前四個(gè)參數(shù),則按照給出的x、y軸的最小值和最大值選擇坐標(biāo)系范圍,繪制出合適的二維曲線。如果給出了全部參數(shù),則繪制出三維圖形。
axis函數(shù)的功能豐富,其常用的用法有:
axis equal :縱橫坐標(biāo)軸采用等長(zhǎng)刻度
axis square:產(chǎn)生正方形坐標(biāo)系(默認(rèn)為矩形)
axis auto:使用默認(rèn)設(shè)置
axis off:取消坐標(biāo)軸
axis on :顯示坐標(biāo)軸
還有:給坐標(biāo)加網(wǎng)格線可以用grid命令來(lái)控制,grid on/off命令控制畫(huà)還是不畫(huà)網(wǎng)格線,不帶參數(shù)的grid命令在兩種之間進(jìn)行切換。
給坐標(biāo)加邊框用box命令控制。和grid一樣用法
例 :繪制分段函數(shù),并添加圖形標(biāo)注。(略)
3. 圖形保持
一般情況下,每執(zhí)行一次繪圖命令,就刷新一次當(dāng)前圖形窗口,圖形窗口原有圖形將不復(fù)存在,如果希望在已經(jīng)存在的圖形上再繼續(xù)添加新的圖形,可以使用圖形保持命令hold。hold on/off 命令是保持原有圖形還是刷新原有圖形,不帶參數(shù)的hold命令在兩者之間進(jìn)行切換。
例:(略)
4. 圖形窗口分割
在實(shí)際應(yīng)用中,經(jīng)常需要在一個(gè)圖形窗口中繪制若干個(gè)獨(dú)立的圖形,這就需要對(duì)圖形窗口進(jìn)行分割。分割后的圖形窗口由若干個(gè)繪圖區(qū)組成,每一個(gè)繪圖區(qū)可以建立獨(dú)立的坐標(biāo)系并繪制圖形。同一圖形窗口下的不同圖形稱為子圖。Matlab提供了subplot函數(shù)用來(lái)將當(dāng)前窗口分割成若干個(gè)繪圖區(qū),每個(gè)區(qū)域代表一個(gè)獨(dú)立的子圖,也是一個(gè)獨(dú)立的坐標(biāo)系,可以通過(guò)subplot函數(shù)激活某一區(qū),該區(qū)為活動(dòng)區(qū),所發(fā)出的繪圖命令都是作用于該活動(dòng)區(qū)域。調(diào)用格式:
subplot(m,n,p)
該函數(shù)把當(dāng)前窗口分成m×n個(gè)繪圖區(qū),m行,每行n個(gè)繪圖區(qū),區(qū)號(hào)按行優(yōu)先編號(hào)。其中第p個(gè)區(qū)為當(dāng)前活動(dòng)區(qū)。每一個(gè)繪圖區(qū)允許以不同的坐標(biāo)系單獨(dú)繪制圖形。
例:(略)
三.繪制二維圖形的其他函數(shù)
1. 其他形式的線性直角坐標(biāo)圖
在線性直角坐標(biāo)中,其他形式的圖形有條形圖、階梯圖、桿圖和填充圖等,所采用的函數(shù)分別為:
bar(x,y,選項(xiàng))????? 選項(xiàng)在單引號(hào)中
stem(x,y,選項(xiàng))
fill(x1,y1,選項(xiàng)1,x2,y2,選項(xiàng)2,…)
前三個(gè)函數(shù)和plot的用法相似,只是沒(méi)有多輸入變量形式。fill函數(shù)按向量元素下標(biāo)漸增次序依次用直線段連接x,y對(duì)應(yīng)元素定義的數(shù)據(jù)點(diǎn)。
例5-8:分別以條形圖、填充圖、階梯圖和桿圖形式繪制曲線
x=0:0.35:7;
y=2*exp(-0.5*x);
subplot(2,2,1);bar(x,y,'g');
title('bar(x,y,''g'')');axis([0, 7, 0 ,2]);
subplot(2,2,2);fill(x,y,'r');
title('fill(x,y,''r'')');axis([0, 7, 0 ,2]);
subplot(2,2,3);stairs(x,y,'b');
title('stairs(x,y,''b'')');axis([0, 7, 0 ,2]);
subplot(2,2,4);stem(x,y,'k');
title('stem(x,y,''k'')');axis([0, 7, 0 ,2]);
2. 極坐標(biāo)圖
polar函數(shù)用來(lái)繪制極坐標(biāo)圖,調(diào)用格式為:
polar(theta,rho,選項(xiàng))
其中,theta為極坐標(biāo)極角,rho為極徑,選項(xiàng)的內(nèi)容和plot函數(shù)相似。
例5-9:繪制 的極坐標(biāo)圖
theta=0:0.01:2*pi;
rho=sin(3*theta).*cos(5*theta);
polar(theta,rho,'r');
3. 對(duì)數(shù)坐標(biāo)圖
在實(shí)際應(yīng)用中,經(jīng)常用到對(duì)數(shù)坐標(biāo),Matlab提供了繪制對(duì)數(shù)和半對(duì)數(shù)坐標(biāo)曲線的函數(shù),其調(diào)用格式為:
semilogx(x1,y1,選項(xiàng)1,x2,y2,選項(xiàng)2,…)
semilogy(x1,y1,選項(xiàng)1,x2,y2,選項(xiàng)2,…)
loglog(x1,y1,選項(xiàng)1,x2,y2,選項(xiàng)2,…)
這些函數(shù)中選項(xiàng)的定義和plot函數(shù)完全一樣,所不同的是坐標(biāo)軸的選取。semilogx函數(shù)使用半對(duì)數(shù)坐標(biāo),x軸為常用對(duì)數(shù)刻度,而y軸仍保持線性刻度。semilogy恰好和semilogx相反。loglog函數(shù)使用全對(duì)數(shù)坐標(biāo),x、y軸均采用對(duì)數(shù)刻度。
例:略
4. 對(duì)函數(shù)自適應(yīng)采樣的繪圖函數(shù)
5. 其他形式的二維圖形
二. 三維繪圖
一.繪制三維曲線的基本函數(shù)
最基本的三維圖形函數(shù)為plot3,它將二維繪圖函數(shù)plot的有關(guān)功能擴(kuò)展到三維空間,可以用來(lái)繪制三維曲線。其調(diào)用格式為:
plot3(x1,y1,z1,選項(xiàng)1,x2,y2,z2,選項(xiàng)2,…)
其中每一組x,y,z組成一組曲線的坐標(biāo)參數(shù),選項(xiàng)的定義和plot的選項(xiàng)一樣。當(dāng)x,y,z是同維向量時(shí),則x,y,z對(duì)應(yīng)元素構(gòu)成一條三維曲線。當(dāng)x,y,z是同維矩陣時(shí),則以x,y,z對(duì)應(yīng)列元素繪制三維曲線,曲線條數(shù)等于矩陣的列數(shù)。
例513 繪制空間曲線
該曲線對(duì)應(yīng)的參數(shù)方程為
t=0:pi/50:2*pi;
x=8*cos(t);
y=4*sqrt(2)*sin(t);
z=-4*sqrt(2)*sin(t);
plot3(x,y,z,'p');
title('Line in 3-D Space');
text(0,0,0,'origin');
xlabel('X');ylabel('Y');zlabel('Z');grid;
二.三維曲面
1.平面網(wǎng)格坐標(biāo)矩陣的生成
當(dāng)繪制z=f(x,y)所代表的三維曲面圖時(shí),先要在xy平面選定一矩形區(qū)域,假定矩形區(qū)域?yàn)镈=[a,b]×[c,d],然后將[a,b]在x方向分成m份,將[c,d]在y方向分成n份,由各劃分點(diǎn)做平行軸的直線,把區(qū)域D分成m×n個(gè)小矩形。生成代表每一個(gè)小矩形頂點(diǎn)坐標(biāo)的平面網(wǎng)格坐標(biāo)矩陣,最后利用有關(guān)函數(shù)繪圖。
產(chǎn)生平面區(qū)域內(nèi)的網(wǎng)格坐標(biāo)矩陣有兩種方法:
利用矩陣運(yùn)算生成。
x=a:dx:b;
y=(c:dy:d)’;
X=ones(size(y))*x;
Y=y*ones(size(x));
經(jīng)過(guò)上述語(yǔ)句執(zhí)行后,矩陣X的每一行都是向量x,行數(shù)等于向量y的元素個(gè)數(shù),矩陣Y的每一列都是向量y,列數(shù)等于向量x的元素個(gè)數(shù)。
利用meshgrid函數(shù)生成;
x=a:dx:b;
y=c:dy:d;
[X,Y]=meshgrid(x,y);
語(yǔ)句執(zhí)行后,所得到的網(wǎng)格坐標(biāo)矩陣和上法,相同,當(dāng)x=y時(shí),可以寫(xiě)成meshgrid(x)
2.繪制三維曲面的函數(shù)
Matlab提供了mesh函數(shù)和surf函數(shù)來(lái)繪制三維曲面圖。mesh函數(shù)用來(lái)繪制三維網(wǎng)格圖,而surf用來(lái)繪制三維曲面圖,各線條之間的補(bǔ)面用顏色填充。其調(diào)用格式為:
mesh(x,y,z,c)
surf(x,y,z,c)
一般情況下,x,y,z是維數(shù)相同的矩陣,x,y是網(wǎng)格坐標(biāo)矩陣,z是網(wǎng)格點(diǎn)上的高度矩陣,c用于指定在不同高度下的顏色范圍。c省略時(shí),Matlab認(rèn)為c=z,也即顏色的設(shè)定是正比于圖形的高度的。這樣就可以得到層次分明的三維圖形。當(dāng)x,y省略時(shí),把z矩陣的列下標(biāo)當(dāng)作x軸的坐標(biāo),把z矩陣的行下標(biāo)當(dāng)作y軸的坐標(biāo),然后繪制三維圖形。當(dāng)x,y是向量時(shí),要求x的長(zhǎng)度必須等于z矩陣的列,y的長(zhǎng)度必須等于必須等于z的行,x,y向量元素的組合構(gòu)成網(wǎng)格點(diǎn)的x,y坐標(biāo),z坐標(biāo)則取自z矩陣,然后繪制三維曲線。
例515 用三維曲面圖表現(xiàn)函數(shù) :
為了便于分析三維曲面的各種特征,下面畫(huà)出3種不同形式的曲面。
%program 1
x=0:0.1:2*pi;
[x,y]=meshgrid(x);
z=sin(y).*cos(x);
mesh(x,y,z);
xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');
title('mesh'); pause;
%program 2
x=0:0.1:2*pi;
[x,y]=meshgrid(x);
z=sin(y).*cos(x);
surf(x,y,z);
xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');
title('surf'); pause;
%program 3
x=0:0.1:2*pi;
[x,y]=meshgrid(x);
z=sin(y).*cos(x);
plot3(x,y,z);
xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');
title('plot3-1');grid;
程序執(zhí)行結(jié)果分別如上圖所示。從圖中可以發(fā)現(xiàn),網(wǎng)格圖(mesh)中線條有顏色,線條間補(bǔ)面無(wú)顏色。曲面圖(surf)的線條都是黑色的,線條間補(bǔ)面有顏色。進(jìn)一步觀察,曲面圖補(bǔ)面顏色和網(wǎng)格圖線條顏色都是沿z軸變化的。用plot3 繪制的三維曲面實(shí)際上由三維曲線組合而成??梢苑治鰌lot(x’,y’,z’)所繪制的曲面的特征。
例516 繪制兩個(gè)直徑相等的圓管相交的圖形。
m=30;
z=1.2*(0:m)/m;
r=ones(size(z));
theta=(0:m)/m*2*pi;
x1=r'*cos(theta);y1=r'*sin(theta);%生成第一個(gè)圓管的坐標(biāo)矩陣
z1=z'*ones(1,m+1);
x=(-m:2:m)/m;
x2=x'*ones(1,m+1);y2=r'*cos(theta);%生成第一個(gè)圓管的坐標(biāo)矩陣
z2=r'*sin(theta);
surf(x1,y1,z1);????????? %繪制豎立的圓管
axis equal ,axis off
hold on
surf(x2,y2,z2);????????? %繪制平放的圓管
axis equal ,axis off
title ('兩個(gè)等直徑圓管的交線');
hold off
例517 分析由函數(shù) 構(gòu)成的曲面形狀與平面z=a的交線。
電子發(fā)燒友App




















評(píng)論