MATLAB畫圖——輕松控制多個(gè)子圖的位置大小

MATLAB的subplot函數(shù),讓我們可以在一個(gè)圖中畫多張圖,大多數(shù)情況下,系統(tǒng)自動(dòng)平均分配的大小非常合適。但有時(shí)候,我們需要幾個(gè)子圖有不同的大小,或者是需要不均勻的位置,例如:


那么這種情況怎么做呢?
很簡(jiǎn)單。
命令subplot(m,n,i),會(huì)均勻地將圖窗分為m行×n列的網(wǎng)格,并在第i個(gè)位置生成圖片。
請(qǐng)看:



可見子窗的編號(hào)是一行一行順序數(shù)下來的。subplot支持這樣一種寫法
subplot(m,n,[i,j,k,l]);
也就是說把第i、j、k、l個(gè)子窗合成一個(gè)圖窗來畫圖。給個(gè)例子:

如果你想畫不均勻子圖,只要自己定義位置就好了!
給個(gè)模板:
figure%生成圖窗
set(gcf,'unit','normalized','position',[0,0,1,1]);%設(shè)定圖窗為寬屏全屏
x1=load("C:\Users\16000\Desktop\GlobalSeis_notitle\0000000_rad_2_0.asc");? ?
suptitle("Spheroidal? n=2,l=0");%總標(biāo)題
subplot(4,2,[1 3]);%在[1,3]位置畫第一個(gè)子圖
T1=x1(:,1)/1000;U1=x1(:,2);
plot(U1,T1,'LineWidth',1);grid on;grid minor;%畫圖,開坐標(biāo)網(wǎng)格
title('U(r)');%每個(gè)子圖都可以加標(biāo)題
subplot(4,2,[2 4]);%在[2,4]位置畫第二個(gè)子圖
T1=x1(:,1)/1000;U1=x1(:,3);?
plot(U1,T1,'LineWidth',1);grid on;grid minor;title('dU(r)/dr');
subplot(4,2,[5 7]);%在[5,7]位置畫第三個(gè)子圖
T1=x1(:,1)/1000;U1=T1.*0;
plot(U1,T1,'LineWidth',1);grid on;grid minor;title('V(r)');
subplot(4,2,[6 8]);%在[6,8]位置畫第四個(gè)子圖
T1=x1(:,1)/1000;U1=T1.*0;
plot(U1,T1,'LineWidth',1);grid on;grid minor;title('dV(r)/dr');
I=getframe(gcf);
imwrite(I.cdata,'0000000_rad_2_0.jpg');

謝謝收看,歡迎收藏~