1.二維曲線
(1)plot函數
①plot函數的基本用法:plot(x,y),其中x和y分別用於存儲x坐標和y坐標數據。
②最簡單的plot函數調用格式:plot(x)
當plot函數的參數x是復數向量時,則分別以該向量元素實部和虛部為橫、縱坐標繪制出一條曲線。
③plot(x,y)函數參數的變化形式
當x為向量,y為矩陣時,
若矩陣y的列(行)數等於x的長度,則以向量x為橫坐標,以y的每個行(列)向量為縱坐標繪制曲線,曲線的條數等於y的行(列)數。
當x,y為同型矩陣時,以x、y的對應列元素為橫、縱坐標分別繪制曲線,曲線條數等於矩陣的列數。
④含多個輸入函數的plot函數
plot(x1,y1,x2,y2,…,xn,yn)
⑤含選項的plot函數:plot(x,y,選項)
x = linspace(0,2*pi,100)';
y1 = 2*exp(-0.5*x)* [1,-1];
y2 = 2*exp(-0.5*x).* sin(2*pi*x);
x1 = 0 : 0.5 : 6;
y3 = 2*exp(-0.5*x1).* sin(2*pi*x1);
plot(x,y1,'k:',x,y2,'b--',x1,y3,'rp')
(2)fplot函數
①fplot(f,lims,選項)
其中,f代表一個函數,通常采用函數句柄的形式。Lims為x軸的取值范圍,用二元向量[xmin,xmax]描述,默認值為[-5,5]。選項定義與plot函數相同。
例如,繪制sin(1/x)的圖形
>>fplot(@(x)sin(1./x),[0,0.2],’b’)
②雙輸入函數參數的用法(給定函數為參數方程形式)
fplot(funx,funy,tlims,選項)
其中,funx、funy代表函數,通常采用函數句柄的形式。tlims為參數函數funx和funy的自變量取值范圍,用二元向量[tmin,tmax]描述(默認[-5,5])。
2.繪制圖形的輔助操作
(1)圖形標注
①title(圖形標題)
若標題要求兩行,則要擁有一個大括號括起來,兩行中間用逗號隔開。圖形標題中也可使用LaTeX格式控制符,使用的地方也要用大括號括起來。
>> title('matlab','y = sin(x)')
含屬性設置的title函數:title(圖形標題,屬性名,屬性值)
Color屬性:用於設置標題文本的顏色
FontSize屬性:用於設置標題文字的字號
②xlabel(x軸說明)
③ylabel(y軸說明)
④text(x,y,圖形說明)
gtext(說明)
⑤legend(圖例1,圖例2,…)
順序要與plot函數輸入的一致
x=linspace(0,2*pi,100); //定義x范圍
y=[sin(x);sin(2*x);sin(0.5*x)]; //定義函數
plot(x,y); //畫出函數圖像
axis([0,7,-1.2,1.2]); //
title('不同頻率正弦函數曲線'); //標題
xlabel('Varible X'); //x軸
ylabel('Varible Y'); //y軸
text(2.5,sin(2.5),'sin(x)'); //在(x,y)處指明具體函數表達
text(1.5,sin(2*1.5),'sin(2x)'); //在(x,y)處指明具體函數表達
text(5.5,sin(0.5*5.5),'sin(0.5*x)'); //在(x,y)處指明具體函數表達式
legend('sin(x)','sin(2*x)','sin(0.5*x)');//右上角區分
grid on //顯示網格
(2)坐標控制
①axis函數:axis([xmin,xmax,ymin,ymax,zmin,zmax])
其他用法:
axis equal:橫縱坐標軸采用等長刻度
axis square:產生正方形坐標系(如不用該命令,默認為矩形)
axis auto:使用默認設置
axis off:取消坐標軸
axis on:顯示坐標軸
②給坐標系加網格和邊框:grid on(顯示網格)、grid off(不顯示網格)、grid(切換)(默認無網格);
box on(顯示邊框)、box off(不顯示邊框)、box(切換)(默認有邊框)
(3)圖形保持:
hold on(保持原有圖形)
hold off(刷新圖形窗口)
hold(切換)
(4)圖形窗口的分割
子圖:同一圖形窗口中的不同坐標系下的圖形稱為子圖。
subplot函數:subplot(m,n,p),其中,m和n指定將圖形窗口分成m*n個繪圖區,p指定當前活動區。
3.其他的二維圖形
(1)其他坐標系下的二維曲線圖
①對數坐標圖(波特圖等)
semilogx(x1,y1,選項1,x2,y2,選項2,…)
semilogy(x1,y1,選項1,x2,y2,選項2,…)
loglog(x1,y1,選項1,x2,y2,選項2,…)
②極坐標圖:polar(theta,rho,選項)
其中,theta為極角,rho為極徑,選項的內容與plot函數相同。
(2)統計圖
①條形圖:bar函數(垂直條形圖)和barh函數(水平條形圖)
bar(y,style),參數y是數據,選項style用於指定分組排列模式(“grouped”,簇狀分組;“stacked”,堆積分組)
bar(x,y,style),其中x存儲橫坐標,y存儲數據
②直方圖:hist函數(直角坐標系下)和rose函數(極坐標系下)
hist(y) hist(y,x)
其中,參數y是要統計的數據,x用於指定區間的划分方式。
rose(theta,x),其中,參數theta用於確定每一區間與原點的角度,選項x用於指定區間的划分方式。
③扇形圖(餅圖):pie函數
pie(x,explode),其中,參數x存儲待統計數據,選項explode控制圖塊的顯示模式(與explode非零值對應的部分將從餅圖中分離出來)。
④面積圖:area函數,與plot函數用法相同,只是將所得曲線的下方填充顏色。
⑤散點類圖形:
散點圖,scatter函數;階梯圖stairs函數;桿圖,stem函數
scatter函數,scatter(x,y,選項,’filled’),參數x,y用於定位數據點,選項用於指定線型、顏色、數據點標記(數據點標記若為封閉圖形,可用’filled’指令填充,否則默認為空心)。
⑥矢量類圖形:compass函數,羅盤圖;feather函數,羽毛圖;quiver函數,箭頭圖
quiver(x,y,u,v),其中,(x,y)指定矢量起點,(u,v)指定矢量終點。
4.三維曲線
(1)plot3函數
①plot3(x,y,z),其中,參數x,y,z組成一組曲線的坐標
②函數參數變化形式plot3(x,y,z)
當x,y,z是同型矩陣時,則以對應列元素繪制曲線,曲線條數等於矩陣列數;當x,y,z中有向量也有矩陣時,行向量的長度與矩陣的列數相同,或列向量的長度與矩陣的行數相同
③含多組輸入參數的plot3函數:
plot3(x1,y1,z1,x2,y2,z2,…,xn,yn,zn),每組x,y,z向量構成一組數據點的坐標,繪制一條曲線。
④含選項的plot3函數:plot3(x,y,z,選項)
選項用於指定曲線的線型、顏色和數據點標記
(2)fplot3函數:
fplot3(funx,funy,funz,tlims)
其中,funx、funy、funz代表定義曲線x、y、z坐標的函數,通常采用函數句柄的形式。tilms為參數函數自變量的取值范圍,用二元向量[tmin,tmax]描述,默認為[-5,5]。
在fplot3函數中,也可以指定曲線的線型、顏色和數據點標記,在后面加上選項即可。
5.三維曲面
(1)平面網格數據的生成
①利用矩陣運算生成
②利用meshgrid(x,y)函數生成
[X,Y]=meshgrid(x,y),其中,參數x、y為向量,存儲網格點坐標的X、Y為矩陣。
//>>x=2:6;
//>>y=(3:8)’;
//>>[X,Y]=meshgrid(x,y);
(2)繪制三維曲面的函數(繪制之前要先生成平面網格)
mesh(x,y,z,c) surf(x,y,z,c)
其中,x、y是網格坐標矩陣,z是網格點上的高度矩陣,c用於指定在不同高度下的曲面顏色。
mesh函數和surf函數還可以這樣調用:mesh(z,c)、surf(z,c)
當x、y省略時,z矩陣的第2維下標當作x軸坐標,第1維當作y軸坐標。
帶等高線的三維網格曲面函數meshc,帶底座的三維網格曲面函數meshz,具有等高線的曲面函數surfc,具有光照效果的曲面函數surfl
(3)標准三維曲面
①sphere函數:[x,y,z]=sphere(n)
繪制三維球面,n決定了球面的圓滑程度(默認為20),n較小則繪制出多面體表面圖
②cylinder函數:[x,y,z]=cylinder(R,n)
繪制三維柱面,R是一個向量,存放柱面在各個高度的半徑,n表示在圓柱圓周上有n個間隔點(默認20)
③peaks函數:
調用格式:peaks(n) peaks(V) peaks(x,y) peaks
④fsurf函數和fmesh函數
fsurf(funx,funy,funz,uvlims)
fmesh(funx,funy,funz,uvlims)
其中,funx、funy、funz代表定義曲面x、y、z坐標的函數,通常采用函數句柄的形式。Uvlims為funx、funy和funz的自變量的取值范圍,用4元向量[umin,umax,vmin,vmax]描述,默認為[-5,5,-5,5]。
6.圖形修飾處理:
視點處理、色彩處理、裁剪處理
(1)視點處理:
方位角(正值表示逆時針)和仰角(正值表示x軸上方)
①view函數:view(az,el),其中,az表示方位角(默認-37.5度),el為仰角(30度)(均以度為單位)。
②view函數的其他用法:view(x,y,z)(視點在笛卡爾坐標中的位置) view(2)(二維平面觀察,方位角為0度,仰角為90度) view(3)(從三維空間觀察,方位角和仰角為默認)
(2)色彩處理
①顏色的向量表示 [R G B]
[0 0 1]:藍色 [1 0 0]:紅色 [0 1 0]:綠色 [1 1 1]:白色 [0 0 0]:黑色
②色圖:色圖矩陣、內建色圖(冷暖、四季、灰度色圖)
指定當前圖形使用的色圖:colormap cmapname
colormap(cmap)
創建色圖矩陣:色圖矩陣的每一行是RGB三元組。可以自定義色圖矩陣,也可以調用MATLAB提供的函數來定義色圖矩陣。
③三維圖形表面的着色
shading faceted:將每個網格片用其高度對應的顏色進行着色,網格線是黑色。
Shading flat:將每個網格片用同一個顏色進行着色,網格線也用相應的顏色。
shading interp:在網格片內采用顏色插值處理。
(3)圖形的裁剪處理:
將圖形中需要裁剪部分對應的函數值設置成NaN,這樣在繪制圖形時,函數值為NaN的部分將不顯示出來,從而達到對圖形進行裁剪的目的。