MATLAB圖形繪制(課堂PPT)_第1頁
MATLAB圖形繪制(課堂PPT)_第2頁
MATLAB圖形繪制(課堂PPT)_第3頁
MATLAB圖形繪制(課堂PPT)_第4頁
MATLAB圖形繪制(課堂PPT)_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、1第第6章章 MATLAB圖形繪制圖形繪制2本章學(xué)習(xí)目標(biāo)n熟練掌握MATLAB圖形繪制的基本步驟和基本繪圖命令n熟悉繪圖過程中曲線顏色、線型、數(shù)據(jù)點型的設(shè)置方法n熟練掌握典型二維圖形的繪制及標(biāo)注方法n掌握三維圖形的基本繪制方法n能夠熟練繪制典型三維圖形并對其進(jìn)行標(biāo)注3主要內(nèi)容n6.1 MATLAB圖形繪制基礎(chǔ)n6.2 二維圖形的繪制n6.3 三維圖形的繪制46.1 MATLAB圖形繪制基礎(chǔ)1. MATLAB圖形繪制的基本步驟圖形繪制的基本步驟 在MATLAB中,一般按照下述的幾個步驟繪制圖形。 準(zhǔn)備需繪制的數(shù)據(jù)或函數(shù),常用典型指令如下。 x=0:0.1:10; y1=bessel(1,x);

2、y2=bessel(2,x); y3=bessel(3,x); 5 選擇圖形輸出的窗口及位置,常用典型指令如下。 figure(1) subplot(m,n,k) 調(diào)用基本的繪圖函數(shù),常用典型指令如下。 plot(x,y1,x,y2,x,y3) plot3(x,y,z,r :) 設(shè)置坐標(biāo)軸的范圍、標(biāo)記號和網(wǎng)格線,常用典型指 令如下。 axis(0,10,-3,3) axis(x1,x2,y1,y2,z1,z2) grid on6 用名稱、圖例、坐標(biāo)名、文本等對圖形進(jìn)行注釋,常用典型指令如下。 xlabel(x) ylabel(y) title(圖1) text(1,1,y=f(x) 打印輸出圖

3、形,常用典型指令如下。 printdps27 在上述步驟中,(1)、(3)是最基本、最常用的繪圖步驟。一般情況下,由這兩步所畫出的圖形已經(jīng)具備足夠的表現(xiàn)力,至于其他步驟,并不完全必需。步驟(2)一般在圖形較多的情況下使用,比如要把幾個圖放到一起進(jìn)行比較,此時可根據(jù)所作圖形的個數(shù)對subplot(m, n, k)指令中的m、n進(jìn)行賦值。步驟(4)、(5)的前后次序可按照指令的常用程度和復(fù)雜程度編排,用戶可根據(jù)自己的需要改變前后次序。 82. MATLAB基本繪圖命令基本繪圖命令 MATLAB提供了大量的指令用于將矢量數(shù)據(jù)以曲線圖形的方式進(jìn)行顯示以及這些曲線圖形的注釋和打印。 詳見表6-1。plo

4、t指令的常用調(diào)用格式 plot(y,s)plot(x,y,s)plot(x1,y1,s1,x2,y2,s2)h=plot()9 其中的參數(shù)s是用來指定線型、色彩、數(shù)據(jù)點型的選項字符串。當(dāng)其省略時,圖形中的線型、色彩等將由MATLAB的默認(rèn)設(shè)置確定。plot3指令的常用調(diào)用格式 plot3(x,y,z,s) plot3(x1,y1,z1,s1,x2,y2,z2,s2,) h=plot3() loglog、semilogx、semilogy函數(shù)的常用調(diào)用格式 這3個指令的調(diào)用格式和plot指令的格式形同,只不過顯示的坐標(biāo)軸比例不同。10plotyy指令的常用調(diào)用格式 plotyy(x1,y1,x2

5、,y2)plotyy(x1,y1,x2,y2,f)plotyy(x1,y1,x2,y2,f1,f2) 指令中出現(xiàn)的參數(shù)f、f1、f2等代表繪制數(shù)據(jù)的方式,可選擇plot、semilogx、semilogy、loglog等不同的形式。116.2 二維圖形的繪制二維圖形的繪制1. 二維圖形的創(chuàng)建及曲線顏色、線型、數(shù)據(jù)點型設(shè)置 這里通過一個簡單的例子引入圖形創(chuàng)建過程。 【例6-1】 繪制正弦函數(shù)y =sin(x)的曲線。 x=0:0.01:10; %定義采樣向量,采樣點步長為0.01,共計101個 y=sin(x); plot(x,y) %在二維坐標(biāo)軸中按線性比例繪制二維圖形 運行后結(jié)果如圖6.3所

6、示。12 有時為了便于觀察,可以在圖形上加上網(wǎng)格,此時只需在上例程序后加上grid on即可。x=0:0.01:10;y=sin(x);plot(x,y)grid on運行后結(jié)果如圖6.4所示。13【例6-2】在一個圖形窗口中繪制多條函數(shù)曲線。x=0:0.01:10;y1=sin(x);y2=x.*sin(x); %y2=xsinxy3=exp(2*cos(x); %plot(x,y1,x,y2,x,y3)運行后結(jié)果如圖6.5所示。2cosxy3=e14 MATLAB雖然會自動為每條曲線賦予不同的顏色以示區(qū)別,但有時卻很難判斷曲線和函數(shù)的對應(yīng)關(guān)系,可以通過兩種方法來解決這個問題。第一種方法,把

7、這些曲線在同一個繪圖窗口的不同區(qū)域分別顯示,把例6-2程序修改如下。 x=0:0.01:10; y1=sin(x); y2=x.*sin(x); y3=exp(2*cos(x); subplot(2,2,1),plot(x,y1) % 在第1個子圖中顯示y1 subplot(2,2,2),plot(x,y2) % 在第2個子圖中顯示y2 subplot(2,2,3),plot(x,y3) % 在第3個子圖中顯示y3 15 運 行 后 結(jié) 果 如 圖 6 . 6 所 示 。 程 序 中subplot(2, 2, 3),plot(x, y3)的含義是把繪圖窗口劃分成2行2列共4個區(qū)域(可同時顯示4

8、個子圖),把y3顯示在第2行第1列,即第3個子圖的位置。此時,可以方便地區(qū)分y1、y2、y3并觀察它們的形狀。16 另外一種方法,可以通過自定義曲線的顏色、線型等來區(qū)別不同的曲線。對例6-2程序的最后一句修改如下plot(x,y1,r:,x,y2,g-,x,y3,b-.)運行后結(jié)果如圖6.7所示 在圖6.7中,用紅色的虛線(在程序中用r:表示)表示函數(shù)y1,用綠色的雙畫線(在程序中用g-表示)表示函數(shù)y2,用藍(lán)色的點畫線(在程序中用b-.表示)表示y3。這樣就能方便區(qū)分同一窗口中不同的曲線。17 此外還可以在不同函數(shù)曲線上標(biāo)注不同的數(shù)據(jù)點型以觀察數(shù)據(jù)點。比如對例6-2程序的第一句及最后一句修改

9、如下x=0:0.2:10;plot(x,y1,r:+,x,y2,g-d,x,y3,b-.o) 修改第一句的目的是增加數(shù)據(jù)取值步長,以便于觀察數(shù)據(jù)點。運行后結(jié)果如圖6.8所示 。 在圖6.8中,y1上的數(shù)據(jù)點用加號表示,y2上數(shù)據(jù)點用菱形表示,y3上的數(shù)據(jù)點用圓形表示。182. 二維圖形的標(biāo)注 表6-3對常用的一些標(biāo)注指令進(jìn)行了歸納,我們通過一些例子來說明表6-3中各指令的功能?!纠?-3】 坐標(biāo)軸及標(biāo)題的標(biāo)注。x=-10:0.1:10; % 定義圖形的橫軸坐標(biāo)范圍及采樣步長x=x+(x=0)*eps; % 用一個“機(jī)器0”小數(shù)代替0 y=sin(x)./x; % 用可邏輯運算的sin(esp)

10、/esp近似代替sin(0)/0的極限plot(x,y)xlabel(x) % 在x軸上標(biāo)注xylabel(y=sinx/x) % 在y軸上標(biāo)注y=sinx/xtitle(門函數(shù)的頻譜) % 在圖形上方添加標(biāo)題19【例6-4】 在圖形中添加文本字符串。x=0:0.1:10;y=sin(x);plot(x,y)xlabel(x)ylabel(y=sinx)text(0,sin(0),leftarrowsin(x)=0) % 在指定位置添 加左箭頭及字符串text(3*pi/4,sin(3*pi/4),rightarrowsin(x)=0.707)text(7*pi/4,sin(7*pi/4),l

11、eftarrowsin(x)=-0.707)20 如果在不要求精確定位的情況下對圖形進(jìn)行標(biāo)注,還可以使用gtext指令實現(xiàn)以交互的方式將標(biāo)注字符串放置在圖形中。例如,在圖6.8中的正弦曲線上執(zhí)行下面的指令 gtext(第一個零點) gtext(第二個零點) gtext(第三個零點) 按回車鍵后打開圖形窗口,當(dāng)光標(biāo)進(jìn)入圖形窗口時,會變成一個大十字,表明系統(tǒng)正在等待用戶的動作。單擊想要加入標(biāo)注的地方即可。21【例6-5】 圖形的圖例標(biāo)注。x=linspace(0,2*pi,50);y1=cos(x);y2=sin(x);plot(x,y1,x,y2)xlabel(x的取值范圍)ylabel(y1和

12、y2的值)legend( y1=cos(x), y2=sin(x)223. 典型二維圖形的繪制 對數(shù)、半對數(shù)坐標(biāo)軸圖形的繪制 在有些時侯,需要的函數(shù)可能在兩個坐標(biāo)軸或某個坐標(biāo)軸上有較大的取值范圍,這時可以通過loglog、semilogx、semilogy等指令在x軸和(或)y軸按對數(shù)比例繪制二維圖形。23【例6-6】 對數(shù)、半對數(shù)坐標(biāo)軸圖形的繪制。x=0:0.1:10;y=exp(x);subplot(1,3,1) % 顯示在第1個子圖上plot(x,y)subplot(1,3,2)loglog(x,y) % 在x軸和y軸都按對數(shù)比例繪制圖形subplot(1,3,3)semilogy(x,

13、y) % 在x軸按線性比例、y軸按對數(shù)比例繪 制二維圖形24雙y軸圖形的繪制 利用MATLAB的plotyy指令可以同時繪制兩條函數(shù)曲線,這兩條曲線共用一個x軸,而y軸則為兩個,分別位于圖形的左邊和右邊。這時,可以將具有不同取值范圍的兩條函數(shù)曲線放到一個圖形中,以便進(jìn)行分析和比較。25【例6-7】 雙y軸圖形的繪制。x=0:1000;a=1000;b=0.01;c=0.01;y1=a*exp(-b*x);y2=cos(c*x);plotyy(x,y1,x,y2,semilogy,plot)26極坐標(biāo)圖的繪制 極坐標(biāo)也是一種常用的坐標(biāo)形式,在有些場合使用起來非常方便。極坐標(biāo)圖的繪制使用的指令是p

14、olar,其調(diào)用格式為polar(theta,rho,linespec),即用極角theta和極徑rho畫出極坐標(biāo)圖形,參量linespec則可以指定極坐標(biāo)圖中線條的線型、標(biāo)記符號和顏色等?!纠?-8】 極坐標(biāo)圖的繪制。x=0:0.01:2*pi;polar(x,sin(2*x).*cos(2*x),r:) title(八瓣玫瑰圖)27二維條形圖的繪制 在MATLAB中,用指令bar和barh來繪制二維條形圖,其中指令bar用來繪制垂直條形圖,barh用來繪制水平條形圖。指令的調(diào)用格式為 bar(x, y, width, style, linespec) 或barh(x, y, width,

15、style, linespec), 其中的參數(shù)width代表條形的寬度,默認(rèn)值為0.8,當(dāng)width的值大于1時,條形將會出現(xiàn)交疊;參數(shù)style用來定義條形的類型,可選值為group或stack,其默認(rèn)值為group,如選stack,則對mn矩陣只繪制n組條形,每組一個條形,且條形的高度為這一列中所有元素的和;參數(shù)linespec用來定義條形的顏色。28【例6-9】 垂直條形圖的繪制。x=1 2 3; %定義條形的位置y=3 5 2; 4 6 8; 7 5 3; %定義條形的高度bar(x,y)【例6-10】 繪制一個二維水平且堆疊的條形圖。x=1 2 3;y=3 5 2; 4 6 8; 7

16、 5 3;barh(x,y)29二維區(qū)域圖的繪制 區(qū)域圖的繪制使用area指令,該指令用于在圖形窗口中顯示一段曲線,該曲線可由一個矢量生成,也可由矩陣中的列生成(其實在MATLAB中,矢量是矩陣的一種特殊形式,即列數(shù)為1的矩陣就是矢量)。如果矩陣的列數(shù)大于1,則area指令將矩陣中每一列的值都繪制為獨立的曲線,并且對曲線之間和曲線與x軸之間的區(qū)域進(jìn)行填充。這種圖形在MATLAB中就稱為區(qū)域圖。30【例6-11】 根據(jù)矩陣數(shù)據(jù)來繪制區(qū)域圖。A=1 2 3 4 2 4 6 8 3 5 7 3 7 5 3 2 6 3 2 1;area(A) %繪制區(qū)域set(gca,xtick,1:5) %設(shè)定x軸

17、的標(biāo)示grid on %顯示網(wǎng)格set(gca,layer,top) %將網(wǎng)格顯示在圖形之上31二維餅圖的繪制 在MATLAB中,餅圖用來顯示矢量或矩陣中的每個元素在其所有的總和中所占的百分比。繪制二維餅圖的指令是pie?!纠?-13】 繪制一個二維餅圖。x=5 8 10 6;pie(x) 如果x中的元素的和小于1,則繪制出來的就是一個不完整的餅圖。例如x=0.1 0.25 0.4 0.15;pie(x)32【例6-14】 繪制一個具有分離切片的二維餅圖。x=1 2 3 4;explode=0 0 1 1; %餅圖中的第3、第4元素切片分離pie(x,explode) 需要說明的是:指令exp

18、lode中非零元素個數(shù)必須與x的維數(shù)相同,其中非零元素所對應(yīng)的切片即為分離的切片。 33【例6-15】 繪制帶有標(biāo)注的二維餅圖。x=12.5 26.2 18.6 18.9 31.4 20.3 17.2 29.7 21.5 11.0 32.2 17.8; %用3列表示3種產(chǎn)業(yè),用4行表示4個季度的產(chǎn)值s=sum(x); %對各列求和labels=第一產(chǎn)業(yè) 第二產(chǎn)業(yè) 第三產(chǎn)業(yè);%餅圖上3部分的標(biāo)注 pie(s,labels)34離散數(shù)據(jù)的圖形繪制 離散數(shù)據(jù)的圖形常見的有兩種:枝干圖和階梯圖。枝干圖是將每個離散數(shù)據(jù)顯示為末端帶有標(biāo)記符號的線條,所用指令是stem。在二維枝干圖中,枝干線條的起點在x坐

19、標(biāo)軸上?!纠?-16】 二維枝干圖的繪制。x1=0.5;x2=0.1;t=0:50;y=sin(x1*t).*exp(-x2*t);stem(t,y)35 圖6.26中線型、顏色、數(shù)據(jù)點符號等都是MATLAB默認(rèn)的。如果想自定義,則只需在調(diào)用stem指令時添加相應(yīng)參數(shù)。比如把例6-16最后一句程序修改如下 stem(t,y,:dr,fill) 其表示的含義為:枝干圖的枝干設(shè)置為虛線(即程序中參數(shù):),數(shù)據(jù)點標(biāo)示符設(shè)置為菱形(即程序中參數(shù)d,線條和標(biāo)示符顏色設(shè)置為紅色(即程序中參數(shù)r),且把標(biāo)示符號填充為紅色(即程序中參數(shù)fill)。 36 另外一種常見的離散數(shù)據(jù)圖形是階梯圖。階梯圖以一個恒定間

20、隔的邊沿顯示數(shù)據(jù)點,繪制階梯圖所用的是stairs指令?!纠?-17】 階梯圖的繪制。x=1:0.5:10;y=cos(x);stairs(x,y,-sr) %自定義線型、線條顏色和數(shù)據(jù)標(biāo)示符號axis(0 10 -1.2 1.2) %設(shè)置坐標(biāo)軸的顯示范圍hold on plot(x,y,:) %畫出y的連續(xù)曲線和階梯圖進(jìn)行比較3738二維輪廓圖的繪制 MATLAB中的輪廓圖是指將相對與某一平面具有同一高度的點連成一條曲線,該高度則由高度矩陣來反映。繪制二維輪廓圖使用contour指令。【例6-18】繪制簡單的輪廓圖。x,y,z=peaks;contour(x,y,z,30)396.3 三維圖

21、形的繪制三維圖形的繪制1. 三維圖形的基本繪制方法 MATLAB提供了豐富的函數(shù)來創(chuàng)建各種形式的三維圖形。在MATLAB中,三維圖形的繪制步驟及方法和前面介紹的二維圖形差不多,只是一些繪圖函數(shù)命令及圖形修飾方法有所不同。三維圖形繪制中比較常用的幾個函數(shù),詳見表6-4。40【例6-20】 簡單三維圖形的繪制。t=0:pi/50:20*pi;x=sin(t);y=cos(2*t);z=sin(t)+cos(t);plot3(x,y,z,-rd) %繪制的函數(shù)曲線為紅色實線,數(shù)據(jù)點 用菱形表示41【例6-21】 繪制一個二元函數(shù)的表面圖形。x,y=meshgrid(-8:0.5:8);z=sqrt(

22、x.2+y.2)+eps;f=sin(z)./z;mesh(f) %繪制由線框構(gòu)成的表面圖形meshc(f) %繪制帶有輪廓線的表面圖形meshz(f) %繪制帶有遮簾線的表面圖形 422. 典型三維圖形的繪制三維條形圖的繪制 在MATLAB中,用指令bar3和bar3h分別來繪制三維垂直條形圖和三維水平條形圖。調(diào)用格式為bar3(x, y, width, style, linespec)和bar3h(x, y, width, style, linespec)。 與二維條形圖不同的是,參數(shù)style還可取detached,此時在x軸方向的各個實心塊是彼此分離的。另外需要說明的是:三維條形圖各組

23、的實心塊是沿著y軸分布的,而不同的組是沿著x軸排列的。 43【例6-23】 繪制一個分離的垂直三維條形圖。x=0.5 1.5 3;y=3 5 2 4 8 5 2 6 7;bar3(x,y,detached)xlabel(x軸)ylabel(y軸)zlabel(z軸)44 在三維條形圖中,可能會出現(xiàn)若干實心塊被遮擋的情況,比如,圖6.36中y(3, 1)即被遮擋。此時,可以設(shè)置參數(shù)group對圖形進(jìn)行分組,把所有的實心塊都顯示出來。比如,把上例中bar3(x, y, detached)修改為bar3(x, y, group)運行后結(jié)果如右圖所示。45三維枝干圖的繪制 在MATLAB中用stem3函數(shù)繪制起點在xy平面上的三維枝干圖,其常用調(diào)用格式如下 stem3(z) stem3(x, y, z, linestyle or color or maket, fill) 如果函數(shù)只帶有一個矢量參數(shù),則將只在x=1(當(dāng)該參量為一個列向量時)或y=1(當(dāng)該參量為一個行向量時)處繪制一行枝

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論