使用數(shù)學軟件Matlab建模畫圖程序匯總
1. 二維數(shù)據(jù)曲線圖
1.1 繪制二維曲線的基本函數(shù)
1.plot()函數(shù)
plot函數(shù)用于繪制二維平面上的線性坐標曲線圖,要提供一組x坐標和對應的y坐標,可以繪制分別以x和y為橫、縱坐標的二維曲線。
例:
t=0:0.1:2*pi; x=2 * t; y=t.*sin(t).*sin(t); plot(x, y);
2.含多個輸入?yún)?shù)的plot函數(shù)
plot函數(shù)可以包含若干組向量對,每一組可以繪制出一條曲線。含多個輸入?yún)?shù)的plot函數(shù)調用格式為:plot(x1,y1,x2,y2,…,xn,yn)
例:
x=linspace(0,2*pi,100); plot(x,sin(x),x,2*sin(x),x,3*sin(x))
3.含選項的plot函數(shù)
Matlab提供了一些繪圖選項,用于確定所繪曲線的線型、顏色和數(shù)據(jù)點標記符號。這些選項如表所示:
線型 | 顏色 | 標記符號 | |
---|---|---|---|
-實線 | b藍色 | .點 | s方塊 |
:虛線 | g綠色 | o圓圈 | d菱形 |
.-點劃線 | r紅色 | x叉 | v朝下三角符號 |
–雙劃線 | c青色 | +加號 | ^朝上三角符號 |
m品紅 | *星號 | <朝左三角符號 | |
y黃色 | > > 朝右三角符號 | p 五角星 | |
k黑色 | h 六角星 | ||
w白色 |
例: 用不同的線型和顏色在同一坐標內繪制曲線 及其包絡線。
x=(0:pi/100:2*pi)'; y1=2*exp(-0.5*x)*[1,-1]; y2=2*exp(-0.5*x).*sin(2*pi*x); x1=(0:12)/2; y3=2*exp(-0.5*x1).*sin(2*pi*x1); plot(x,y1,'k:',x,y2,'b--',x1,y3,'rp');
在該plot函數(shù)中包含了3組繪圖參數(shù),第一組用黑色虛線畫出兩條包絡線,第二組用藍色雙劃線畫出曲線y,第三組用紅色五角星離散標出數(shù)據(jù)點。
例: 設置正弦曲線的線寬為 3,設置上三角形進行數(shù)據(jù)點的標記,并設置標記 點邊緣為黑色,設置標記點填充顏色為紅色,設置標記點的尺寸為 10,則 MATLAB 代碼 如下:
% 橫坐標軸 x = linspace(0, 2*pi, 50); % 生成數(shù)據(jù)點,縱坐標軸 y = 2 * sin(pi * x); % 繪圖 figure % 設置線的寬帶為3 plot(x, y, 'k--^', 'LineWidth', 3, ... 'MarkerEdgeColor', 'k', ... %設置標記點的邊緣顏色為黑色 'MarkerFaceColor', 'r', ... %設置標記點的填充顏色為紅色 'MarkerSize', 10) %設置標記點的尺寸為10
例: 利用五角星標記例兩曲線的交叉點
% 橫坐標軸 x = linspace(0, 2*pi, 1000); % 生成數(shù)據(jù)點,縱坐標軸 y1 = 0.2 * exp(-0.5 * x).* cos(4 * pi * x); y2 = 2 * exp(-0.5 * x) .* cos(pi * x); % 查找y1與y2相等點(近似相等)的下標 k = find( abs(y1-y2) < 1e-2 ); %取y1與y2相等點的x坐標 x1 = x(k); % 求y1與y2值相等點的y坐標 y3 = 0.2 * exp(-0.5 * x1) .* cos(4 * pi * x1); % 繪圖 figure plot(x, y1, 'r-.', x, y2, 'k:', x1, y3, 'bp','LineWidth',2);
4.雙縱坐標函數(shù)plotyy
在Matlab中,如果需要繪制出具有不同縱坐標標度的兩個圖形,可以使用plotyy函數(shù),它能把具有不同量綱,不同數(shù)量級的兩個函數(shù)繪制在同一個坐標中,有利于圖形數(shù)據(jù)的對比分析。使用格式為:plotyy(x1,y1,x2,y2)
x1,y1對應一條曲線,x2,y2對應另一條曲線。橫坐標的標度相同,縱坐標有兩個,左邊的對應x1,y1數(shù)據(jù)對,右邊的對應x2,y2。
x=0:pi/100:2*pi; % 生成曲線 y1=0.2*exp(-0.5*x).*cos(4*pi*x); y2=2*exp(-0.5*x).*cos(pi*x); % 繪圖 figure plotyy(x,y1,x,y2); plot(x, y1, 'k-', x, y2, 'k-', 'LineWidth', 3)
1.2 繪制圖形的輔助操作
1.圖形標注
title('圖形名稱') xlabel('x軸說明') ylabel('y軸說明') text(x,y,'圖形說明') legend('圖例1','圖例2',…)
- title、xlabel和ylabel函數(shù)分別用于說明圖形和坐標軸的名稱。
- text函數(shù)是在坐標點(x,y)處添加圖形說明。
- legend函數(shù)用于繪制曲線所用線型、顏色或數(shù)據(jù)點標記圖例,圖例放置在空白處,用戶還可以通過鼠標移動圖例,將其放到所希望的位置。
除legend函數(shù)外,其他函數(shù)同樣適用于三維圖形,在三維中z坐標軸說明用zlabel函數(shù)。
例:繪制正弦和余弦曲線,設置圖形的標題、x 軸和 y 軸的標注,設置曲線標準。
% 橫軸 x=0:pi/50:2*pi; % 曲線數(shù)據(jù) y1=sin(x); y2=cos(x); % 繪圖 figure plot(x, y1, 'k-', x, y2, 'k-.') % 文本標注 text(pi, 0.05, '\leftarrow sin(\alpha)') text(pi/4-0.05, 0.05, 'cos(\alpha)\rightarrow') % 標題標注 title('sin(\alpha) and cos(\alpha)') % 坐標軸標注 xlabel('\alpha') ylabel('sin(\alpha) and cos(\alpha)')
2. 坐標控制
axis([xmin xmax ymin ymax zmin zmax])
如果只給出前四個參數(shù),則按照給出的x、y軸的最小值和最大值選擇坐標系范圍,繪制出合適的二維曲線。如果給出了全部參數(shù),則繪制出三維圖形。
axis函數(shù)的功能豐富,其常用的用法有:
axis equal
:縱橫坐標軸采用等長刻度
axis square
:產(chǎn)生正方形坐標系(默認為矩形)
axis auto
:使用默認設置
axis off
:取消坐標軸
axis on
:顯示坐標軸
axis tight
:按緊湊方式顯示坐標軸范圍,即坐標軸范圍為繪圖數(shù)據(jù)的范圍
grid on/off
:命令控制畫還是不畫網(wǎng)格線
例:觀察曲線 y=cos(tan(πx))在 x=0.5 附近的圖形曲線
% x軸 x = 0:1/3000:1; % 生成誤差曲線 y = cos(tan(pi*x)); % 繪圖 figure % 分裂窗口為2*1個子窗口 subplot(2,1,1) plot(x,y) title('\itcos(tan(\pix))') % 坐標軸調整 subplot(2,1,2) plot(x,y) axis([0.4 0.6 -1 1]); title('復雜函數(shù)的局部透視')
subplot(m,n,p)
該函數(shù)把當前窗口分成m×n個繪圖區(qū),m行,每行n個繪圖區(qū),區(qū)號按行優(yōu)先編號。其中第p個區(qū)為當前活動區(qū)。每一個繪圖區(qū)允許以不同的坐標系單獨繪制圖形。
1.3 繪制二維圖形的其他函數(shù)
1.對數(shù)坐標圖
在實際應用中,經(jīng)常用到對數(shù)坐標,Matlab提供了繪制對數(shù)和半對數(shù)坐標曲線的函數(shù),其調用格式為:
semilogx(x1,y1,選項1,x2,y2,選項2,…) semilogy(x1,y1,選項1,x2,y2,選項2,…) loglog(x1,y1,選項1,x2,y2,選項2,…)
這些函數(shù)中選項的定義和plot函數(shù)完全一樣,所不同的是坐標軸的選取。
semilogx函數(shù)使用半對數(shù)坐標,x軸為常用對數(shù)刻度,而y軸仍保持線性刻度。semilogy恰好和semilogx相反。
loglog函數(shù)使用全對數(shù)坐標,x、y軸均采用對數(shù)刻度。
例:繪制函數(shù) y=e
% x軸 x=0:0.5:5; % y軸 y = exp(x); % 繪圖 figure % 笛卡爾坐標系 subplot(4, 1, 1) plot(x, y, 'r-.') title('笛卡爾坐標系') % 半對數(shù)坐標系 subplot(4, 1, 2) semilogx(x, y, 'g:') title('x軸為對數(shù)坐標系') subplot(4, 1, 3) semilogy(x, y, 'b-') title('y軸為對數(shù)坐標系') % 對數(shù)坐標系 subplot(4, 1, 4) loglog(x, y, 'k:','LineWidth',4) title('對數(shù)坐標系')
2. 餅圖
- pie(x)
:繪制數(shù)據(jù) x 的餅圖,x 可以是向量或者矩陣,x 中的每一個元素將代表餅圖的一個扇區(qū),同時餅圖中顯示各元素總和的比例。
- pie(x, explode)
:繪制數(shù)據(jù) x 的餅圖,其中參數(shù) explode 可以用來設置餅圖中某個重要的扇區(qū)進行抽取式重點顯示,這里需要注意的是,explode 向量的長度與 x 中的元素個數(shù)相等,并與 x 中的元素意義對應,explode 元素為非零值,對應的元素扇區(qū)將從餅圖中分離顯示,通常非零值都設置為 1。
- pie(x, labels)
:繪制數(shù)據(jù) x 的餅圖,其中參數(shù) labels 可以用來設置餅圖中各個扇區(qū)的顯示標注,注意參數(shù) labels 應該為字符串或者數(shù)字利用向量 X中的數(shù)據(jù)描繪餅圖
例:有一位研究生,在一年中平均每月的費用為生活費 190 元,資料費 33 元, 電話費 45 元,購買衣服 42 元,其他費用 45 元。請以餅圖表示出他每月的消費比例,并在 餅圖中分離出使用最多的費用和使用最少的費用的切片。
% 數(shù)據(jù)準備 x=[190 33 45 42 45]; % 分離顯示設置 explode=[1 1 0 0 0]; % 繪圖 figure() colormap hsv pie(x,explode,{'生活費','資料費','電話費','購買衣服','其他費用'}) title('餅圖')
3. 條形圖
看例子:
%隨機函數(shù)產(chǎn)生5*3的數(shù)組,對產(chǎn)生的數(shù)據(jù)取整 Y = round(rand(5,3)*10); % 繪圖 subplot(2,2,1) bar(Y,'group') title 'Group' %堆型二維垂直條形圖 subplot(2,2,2) bar(Y,'stack') title('Stack') %堆型二維水平條形圖 subplot(2,2,3) barh(Y,'stack') title('Stack') %設定條形的寬度為1.5 subplot(2,2,4) bar(Y,1.5) title('Width = 1.5')
例:有一位研究生,在一年中平均每月的費用為生活費 190 元,資料費 33 元, 電話費 45 元,購買衣服 42 元,其他費用 45 元。請以柱狀圖表示出他每月的消費比例。 MATLAB 代碼如下:
% 數(shù)據(jù)準備 y=[190 33 45 42 45]; x=1:5 ; % 繪圖 figure bar(x,y) title('柱狀圖'); set(gca,'xTicklabel',{'生活費','資料費','電話費','購買衣服','其他費用'})
4. 排列圖
排列圖又稱累托(Pareto)圖,由一 個橫坐標、兩個縱坐標、多個按高低順序 排列的條形和一條折線組成。其中,橫坐 標表示各因素,左縱坐標表示頻數(shù),右縱 坐標表示頻率,折線表示累積的頻率。該 圖能較好地分析各因素的重要性,可用于 尋找主要問題或主要原因。在MATLAB 中 pareto()函數(shù)用于繪制排列圖,其調用格式如下:
pareto(y)
:繪制數(shù)據(jù)y的排列圖。y值的大小用排列圖條形的高度表示。pareto(y,x)
:繪制數(shù)據(jù)y的排列圖。當x為數(shù)值時,用于指定數(shù)值型的橫坐標。當 x 為字符串時,用于指定字符串型的橫坐標。
Y=[100 98 97 90 90]; names={'第1名' '第2名' '第3名' '第4名' '第5名'}; pareto(Y,names)
2. 三維圖形
2.1 繪制三維曲線
1.用plot3()函數(shù)畫三維曲線
最基本的三維圖形函數(shù)為plot3,它將二維繪圖函數(shù)plot的有關功能擴展到三維空間,可以用來繪制三維曲線。其調用格式為:
plot3(x1,y1,z1,選項1,x2,y2,z2,選項2,…)
其中每一組x,y,z組成一組曲線的坐標參數(shù),選項的定義和plot的選項一樣。當x,y,z是同維向量時,則x,y,z對應元素構成一條三維曲線。當x,y,z是同維矩陣時,則以x,y,z對應列元素繪制三維曲線,曲線條數(shù)等于矩陣的列數(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;
2. 三維網(wǎng)格圖的繪制
在 MATLAB 中,進行三維圖形繪制時,常常需要首先創(chuàng)建三維網(wǎng)格,也就是先創(chuàng)建 平面圖的坐標系。在 MATLAB 中,常用 meshgrid()函數(shù)生成網(wǎng)格數(shù)據(jù),其調用格式如下。
[X,Y]=meshgrid(x,y)
:用于生成向量 x 和 y 的網(wǎng)格數(shù)據(jù),即變換為矩陣數(shù)據(jù) X 和 Y, 矩陣 X 中的行向量為向量 x,矩陣 Y 的列向量為向量 y。[X,Y]=meshgrid(x)
:生成向量 x 的網(wǎng)格數(shù)據(jù),函數(shù)等同[X,Y]=meshgrid(x,x)
。
[X,Y,Z]=meshgrid(x,y,z)
:生成向量 x、y、z 的三維網(wǎng)格數(shù)據(jù),生成的數(shù)據(jù) X 和 Y 可分別表示三維繪圖中的 x 和 y 坐標。
三維網(wǎng)格圖形是指在三維空間內連接相鄰的數(shù)據(jù)點,形成網(wǎng)格。在MATLAB中繪制三維網(wǎng)格圖的函數(shù)主要有mesh()函數(shù)、meshc()函數(shù)和meshz()函數(shù)。其中,mesh()函數(shù)最常 用,其調用格式如下:
mesh(x,y,z)
:繪制三維網(wǎng)格圖,x、y、z 分別表示三維網(wǎng)格圖形在 x 軸、y 軸和 z 軸 的坐標,圖形的顏色由矩陣 z 決定。
mesh(Z)
:繪制三維網(wǎng)格圖,分別以矩陣 Z 的列下標、行下標作為三維網(wǎng)格圖的 x 軸、y 軸的坐標,圖形的顏色由矩陣 Z 決定。
mesh(...,C)
:輸入?yún)?shù)C用于控制繪制的三維網(wǎng)格圖的顏色。mesh(...,'PropertyName',PropertyValue,...)
:設置三維網(wǎng)格圖的指定屬性的屬性值。
函數(shù) meshc()
可繪制帶有等值線的三維網(wǎng)格圖,其調用格式與函數(shù) mesh()
基本相同, 但函數(shù) meshc()
不支持對圖形網(wǎng)格線或等高線指定屬性的設置。
函數(shù) meshz()
可繪制帶有圖形底邊的三維網(wǎng)格圖,其調用格式與函數(shù) mesh()
基本相同, 但函數(shù) meshz()
不支持對圖形網(wǎng)格線指定屬性的設置。
另外,函數(shù)ezmesh()
、ezmeshc()
和ezmeshz()
可根據(jù)函數(shù)表達式直接繪制相應的三維網(wǎng)格圖。
由于網(wǎng)格線是不透明的,繪制的三維網(wǎng)格圖有時只能顯示前面的圖形部分,而后面的 部分可能被網(wǎng)格線遮住了,沒有顯示出來。 MATLAB中提供了命令 hidden 用于觀察圖形后面隱藏的網(wǎng)格,hidden 命令的調用格式如下:
hidden on
:設置網(wǎng)格隱藏部分不可見,默認情況下為此狀態(tài)。
hidden off
:設置網(wǎng)格的隱藏部分可見。
hidden
:該命令用于切換網(wǎng)格的隱藏部分是否可見。
例:繪制簡單的三維網(wǎng)格圖
% 數(shù)據(jù)準備 t=0:pi/10:pi; x=sin(t); y=cos(t); [X,Y]=meshgrid(x,y); z =X + Y; % 繪圖 figure mesh (z,'FaceColor','W','EdgeColor','K') grid title('三維網(wǎng)格圖');
2.2 三維表面圖的繪制
三維表面圖也可以用來表示三維空間內數(shù)據(jù)的變化規(guī)律,與之前講述的三維網(wǎng)絡圖的 不同之處在于對網(wǎng)格的區(qū)域填充了不同的色彩。在 MATLAB 中繪制三維表面圖的函數(shù)為 surf()函數(shù),其調用格式如下:
surf(Z)
:繪制數(shù)據(jù) Z 的三維表面圖,分別以矩陣 Z 的列下標、行下標作為三維網(wǎng)格圖的 x 軸、y 軸的坐標,圖形的顏色由矩陣 Z 決定。
surf(X, Y, Z)
:繪制三維表面圖,X、Y、Z 分別表示三維網(wǎng)格圖形在 x 軸、y 軸和 z 軸的坐標,圖形的顏色由矩陣 Z 決定。
surf(X, Y, Z, C)
:繪制三維表面圖,輸入?yún)?shù) C 用于控制繪制的三維表面圖的顏色。
surf(..., 'PropertyName', PropertyValue)
:繪制三維表面圖,設置相應屬性的屬性值。
函數(shù) surfc()
用于繪制帶等值線的三維表面圖,其調用格式同函數(shù) surf()
基本相同,函數(shù) surfl()
可用于繪制帶光照模式的三維表面圖,與函數(shù) surf()
和 surfc()
不同的調用格式如下:
surfl(...,'light')
:以光照對象 light 生成一個帶顏色、帶光照的曲面。surfl(...,'cdata')
:輸入?yún)?shù) cdata 設置曲面顏色數(shù)據(jù),使曲面成為可反光的曲面。
surfl(...,s)
:輸入?yún)?shù) s 為一個二維向量[azimuth,elevation],或者三維向量[x,y,z],用于指定光源方向,默認情況下光源方位從當前視角開始,逆時針 45°。
例:簡單對 surf()
函數(shù)進行舉例
% 數(shù)據(jù)準備 xi=-10:0.5:10; yi=-10:0.5:10; [x,y]=meshgrid(xi,yi); z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2); % 繪圖 surf(x,y,z)
2.3 三維切片圖的繪制
在MATLAB中slice()函數(shù)用于繪制三維切片圖。三維切片圖可形象地稱為“四維圖”,可以在三維空間內表達第四維的信息,用顏色來標識第四維數(shù)據(jù)的大小。slice()函數(shù)的調用格式如下:
slice(v, sx, sy, sz)
:輸入?yún)?shù) v 為三維矩陣(階數(shù)為 m x n x p),x、y、z 軸默認狀態(tài)下分別為 1:m、1:n、1:p,數(shù)據(jù) v 用于指定第四維的大小,在切片圖上顯示為不同的顏色,輸入?yún)?shù) sx、sy、sz 分別用于指定切片圖在 x、y、z 軸所切的位置。
slice(x ,y, z, v, sx, sy, sz)
:輸入?yún)?shù) x、y、z用于指定繪制的三維切片圖的 x、y、z軸。
slice(...,'method')
:輸入?yún)?shù)method用于指定切片圖繪制時的內插值法,'method' 可以設置的參數(shù)有:'linear'(三次線性內插值法,默認)、'cubic'(三次立方內插 值法)、'nearest'(最近點內插值法)。
例:觀察函數(shù)在-2≤x≤2、-2≤y≤2、-2≤z≤2 上的體積情況
% 數(shù)據(jù)準備 xi=-10:0.5:10; yi=-10:0.5:10; [x,y]=meshgrid(xi,yi); z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2); [x,y,z] = meshgrid(-2:.2:2, -2:.25:2, -2:.16:2); v = x.*exp(-x.^2-y.^2-z.^2); xslice = [-1.2,.8,2]; yslice = 2; zslice = [-2,0]; % 繪圖 slice(x,y,z,v,xslice,yslice,zslice)
以上所述是小編給大家介紹的使用數(shù)學軟件Matlab建模畫圖程序匯總,希望對大家有所幫助。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
thymeleaf實現(xiàn)th:each雙重多重嵌套功能
今天給大家分享一個使用 thymeleaf 實現(xiàn)一個動態(tài)加載一二級文章分類的功能,本文通過代碼講解的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧2019-11-11分別使用vue和Android實現(xiàn)長按券碼復制功能
最近分別用vue和Android實現(xiàn)了一個券碼復制功能,長按券碼會在上方彈出一個拷貝的icon提示,點擊icon將券碼內容復制到剪貼板。下面小編給大家?guī)韺崿F(xiàn)代碼,需要的朋友參考下吧2019-10-10ol7.7安裝部署4節(jié)點spark3.0.0分布式集群的詳細教程
這篇文章主要介紹了安裝部署4節(jié)點spark3.0.0分布式集群,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07JetBrains 學生認證教程(Pycharm,IDEA… 等學生認證教程)
這篇文章主要介紹了JetBrains 學生認證教程(Pycharm,IDEA… 等學生認證教程)文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09