什么是subplot函數(shù)
subplot是MATLAB中的函數(shù),是將多個圖畫到一個平面上的工具。在matlab的命令窗口中輸入doc subplot或者h(yuǎn)elp subplot即可獲得該函數(shù)的幫助信息。
函數(shù)功能
subplot是MATLAB中的函數(shù)。
使用方法:subplot(m,n,p)或者subplot(m n p)。
subplot是將多個圖畫到一個平面上的工具。其中,m表示是圖排成m行,n表示圖排成n列,也就是整個figure中有n個圖是排成一行的,一共m行,如果m=2就是表示2行圖。p表示圖所在的位置,p=1表示從左到右從上到下的第一個位置。
在matlab的命令窗口中輸入doc subplot或者h(yuǎn)elp subplot即可獲得該函數(shù)的幫助信息。
簡單的例子
把繪圖窗口分成兩行兩列四塊區(qū)域,然后在每個區(qū)域分別作圖,基本步驟:
subplot(2,2,1); % 2、2、1之間沒有逗號也可以
在第一塊繪圖
subplot(2,2,2);
在第二塊繪圖
subplot(2,2,3);
在第三塊繪圖
subplot(2,2,4);
在第四塊繪圖
matlab中subplot函數(shù)的功能
subplot
功能
分割figure,創(chuàng)建子坐標(biāo)系
語法
h = subplot(m,n,p) or subplot(mnp)
subplot(m,n,p,‘replace’)
subplot(m,n,P)
subplot(h)
subplot(‘Position’,[left bottom width height])
subplot(。。。, prop1, value1, prop2, value2, 。。。)
h = subplot(。。。)
描述
h = subplot(m,n,p)/subplot(mnp) 將figure劃分為m×n塊,在第p塊創(chuàng)建坐標(biāo)系,并返回它的句柄。當(dāng)m,n,p《10時,可以簡化為subplot(mnp)或者subplot mnp
?。ㄗⅲ簊ubplot(m,n,p)或者subplot(mnp)此函數(shù)最常用:subplot是將多個圖畫到一個平面上的工具。其中,m表示是圖排成m行,n表示圖排成n列,也就是整個figure中有n個圖是排成一行的,一共m行,如果第一個數(shù)字是2就是表示2行圖。p是指你現(xiàn)在要把曲線畫到figure中哪個圖上,最后一個如果是1表示是從左到右第一個位置。 )
subplot(m,n,p,‘replace’)如果所指定的坐標(biāo)系已存在,那創(chuàng)建新坐標(biāo)系替換它
subplot(m,n,P)此時p為向量,表示將P中指定的小塊合并成一個大塊創(chuàng)建坐標(biāo)系,P中指定的小塊可以不連續(xù),甚至不相連。
比如subplot(2,3,[2 5])表示將第2和5小塊連成一個大塊;subplot(2,3,[2 6])由于2和6不連續(xù)也不相連,此時表示將第2、3、5和6四塊連成一個大塊,相當(dāng)于subplot(2,3,[2 3 5 6])
subplot(h) 將坐標(biāo)系h設(shè)為當(dāng)前坐標(biāo)系,相當(dāng)于axes(h)
subplot(‘Position’,[left bottom width height])在指定位置創(chuàng)建一個新坐標(biāo)系,等效于axes(‘Position’,[left bottom width height])
subplot(。。。, prop1, value1, prop2, value2, 。。。)在創(chuàng)建坐標(biāo)系時,同時設(shè)置相關(guān)屬性,axes屬性參見附錄
h = subplot(。。。) 返回所創(chuàng)建坐標(biāo)系的句柄
注意
1)使用subplot新建的axes塊如果與已存在塊重疊,MATLAB將刪除已存在的axes并創(chuàng)建新的axes,除非已存在和需要創(chuàng)建的axes完全重合(此時相當(dāng)于將它置為當(dāng)前坐標(biāo)系),此時如果想刪除重建的話,需要使用‘replace’參數(shù)
2)subplot(1,1,1)清空當(dāng)前窗口所有坐標(biāo)系對象,并創(chuàng)建一個默認(rèn)的坐標(biāo)系。注意此時subplot(1,1,1)和subplot(111)不完全等效,subplot(111)執(zhí)行完以后,沒有任何直觀上的反應(yīng),它只是促使figure在下次調(diào)用繪圖命令之前執(zhí)行清空圖形命令clf reset,接著創(chuàng)建一個默認(rèn)坐標(biāo)系。也就是說subplot(111)相當(dāng)于將subplot(1,1,1)的操作分開了。由于subplot(111)執(zhí)行完并沒有創(chuàng)建新坐標(biāo)系,故沒法返回句柄,也就是說h=subplot(111)是錯誤的
舉例1:
t=0:0.001:1;
y1=sin(10*t);
y2=sin(15*t);
subplot(211)
plot(t,y1)
subplot(212)
plot(t,y2)
舉例2:
x=20:10:20000;
y=rand(size(x));
subplot(3,2,1)
plot(x)
title(‘默認(rèn)格式’)
subplot(3,2,2)
plot(x)
set(gca,‘xtick’,[1 3 6 8]);
set(gca,‘ytick’,[]);
title(‘X自定義間隔,Y關(guān)閉’)
subplot(3,2,3)
plot(x)
set(gca,‘xtick’,[1 3 6 8]);
set(gca,‘xticklabel’,sprintf(‘.4f|’,get(gca,‘xtick’)))
set(gca,‘ytick’,[2 4 5 7]);
set(gca,‘yticklabel’,{‘Two’,‘Four’,‘Five’,‘Seven’});
title(‘XY自定義間隔、精度及顯示方式’)
subplot(3,2,4)
plot(x)
set(gca,‘xminortick’,‘on’);%style 5
set(gca,‘ticklength’,[0.05 0.025]);
set(gca,‘tickdir’,‘out’);
title(‘XY坐標(biāo)刻度顯示方式’)
subplot(3,2,5)
plot(x)
set(gca,‘xtick’,[min(x) (max(x)+min(x))/2 max(x)]);
set(gca,‘ytick’,[min(x) (max(x)+min(x))/2 max(x)]);
title(‘論文中常用的標(biāo)準(zhǔn)3點式顯示’)
subplot(3,2,6)
semilogx(x,y);
set(gca,‘XLim’,[20 20000]);
set(gca,‘XMinorTick’,‘off’);
set(gca,‘XTick’,[20 31.5 63 125 250 500 1000 2000 4000 8000 16000]);
set(gca,‘XGrid’,‘on’);
set(gca,‘XMinorGrid’,‘off’);
title(‘自定義網(wǎng)格顯示’)
補充其他plot用法:
plot 建立向量或矩陣各隊隊向量的圖形 字元 顏色 字元 圖線型態(tài)
loglog x、y軸都取對數(shù)標(biāo)度建立圖形 y 黃色 。 點
semilogx x軸用于對數(shù)標(biāo)度,y軸線性標(biāo)度繪制圖形 k 黑色 o 圓
semilogy y軸用于對數(shù)標(biāo)度,x軸線性標(biāo)度繪制圖形 w 白色 x x
title 給圖形加標(biāo)題 b 藍(lán)色 + +
xlabel 給x軸加標(biāo)記 g 綠色 * *
ylabel 給y軸加標(biāo)記 r 紅色 - 實線
text 在圖形指定的位置上加文本字符串 c 亮青色 : 點線
gtext 在鼠標(biāo)的位置上加文本字符串 m 錳紫色 -。 點虛線
grid 打開網(wǎng)格線 -- 虛線
hold on 命令用于在已畫好的圖形上添加新的圖形
1) x=0:0.001:10; % 0到10的1000個點(每隔0.001畫一個點)的x座標(biāo)
y=sin(x); % 對應(yīng)的y座標(biāo)
plot(x,y); % 繪圖
注:matlab畫圖實際上就是描點連線,因此如果點取得不密,畫出來就成了折線圖,請試驗之
2) Y=sin(10*x);
plot(x,y,‘r:’,x,Y,‘b’) % 同時畫兩個函數(shù)
3) 若要改變顏色,在座標(biāo)對后面加上相關(guān)字串即可:
x=0:0.01:10;
plot(x,sin(x),‘r’)
4) 若要同時改變顏色及圖線型態(tài)(Line style),也是在坐標(biāo)對后面加上相關(guān)字串即可:
plot(x,sin(x),‘r*’)
5) 用axis([xmin,xmax,ymin,ymax])函數(shù)來調(diào)整圖軸的范圍
axis([0,6,-1.5,1])
6)MATLAB也可對圖形加上各種注解與處理:(見上表)
xlabel(‘x軸’); % x軸注解
ylabel(‘y軸’); % y軸注解
title(‘余弦函數(shù)’); % 圖形標(biāo)題
legend(‘y = cos(x)’); % 圖形注解
gtext(‘y = cos(x)’); % 圖形注解 ,用鼠標(biāo)定位注解位置
grid on; % 顯示格線
7)畫橢圓
a = [0:pi/50:2*pi]‘; %角度
X = cos(a)*3; %參數(shù)方程
Y = sin(a)*2;
plot(X,Y);
xlabel(’x‘), ylabel(’y‘);
title(’橢圓‘)
8) 繪制函數(shù) 在0 ≤ x ≤ 1時的曲線。
x=0:0.1:1
y=x.*exp(-x) %為什么用點運算?若不用會怎樣
plot(x,y),xlabel(’x‘),ylabel(’y‘),title(’y=x*exp(-x)‘)
9)畫出衰減振蕩曲線 與它的包絡(luò)線 及 。t 的取值范圍是[0, 4π] 。
t=0:pi/50:4*pi;
y0=exp(-t/3);
y=exp(-t/3).*sin(3*t);
plot(t,y,’-r‘,t,y0,’:b‘,t,-y0,’:b‘) % -r表示紅色實線,:b表示藍(lán)色點線,看上表
grid
10) 在同一個畫面上建立幾個坐標(biāo)系, 用subplot(m,n,p)命令;把一個畫面分成m×n個圖形區(qū)域, p代表當(dāng)前的區(qū)域號,在每個區(qū)域中分別畫一個圖,如
x=linspace(0,2*pi,30); y=sin(x); z=cos(x);
u=2*sin(x).*cos(x); v=sin(x)。/cos(x);
subplot(2,2,1),plot(x,y),axis([0 2*pi -1 1]),title(’sin(x)‘)
subplot(2,2,2),plot(x,z),axis([0 2*pi -1 1]),title(’cos(x)‘)
subplot(2,2,3),plot(x,u),axis([0 2*pi -1 1]),title(’2sin(x)cos(x)‘)
subplot(2,2,4),plot(x,v),axis([0 2*pi -20 20]),title(’sin(x)/cos(x)‘)
三維圖形
11)三維螺旋線:
t=0:pi/50:10*pi;
plot3(sin(t),cos(t),t) %參數(shù)方程
grid %添加網(wǎng)格
12) t=linspace(0,20*pi, 501);
plot3(t.*sin(t), t.*cos(t), t); %注意點乘
也可以同時畫出兩條曲線,格式與二維情況類似,茲不舉例。
13)用mesh命令畫曲面
畫出由函數(shù) 形成的立體網(wǎng)狀圖:
a=linspace(-2, 2, 25); % 在x軸上從(-2,2)取25點
b=linspace(-2, 2, 25); % 在y軸上取25點
?。踴,y]=meshgrid(a, b); % x和y都是21x21的矩陣
z=x.*exp(-x.^2-y.^2); % 計算函數(shù)值,z也是21x21的矩陣
mesh(x, y, z); % 畫出立體網(wǎng)狀圖
14) surf和mesh的用法類似:
a=linspace(-2, 2, 25); % 在x軸上取25點
b=linspace(-2, 2, 25); % 在y軸上取25點
?。踴,y]=meshgrid(a, b); % x和y都是21x21的矩陣
z=x.*exp(-x.^2-y.^2); % 計算函數(shù)值,z也是21x21的矩陣
surf(x, y, z); % 畫出立體曲面圖
評論
查看更多