網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
subplot函數(shù)的功能是在各個(gè)分塊位置創(chuàng)建坐標(biāo)區(qū)。
語(yǔ)法
subplot(m,n,p)
subplot(m,n,p,'replace')
subplot(m,n,p,'align')
subplot(m,n,p,ax)
subplot('Position',pos)
subplot(___,Name,Value)
ax = subplot(___)
subplot(ax)
說(shuō)明
subplot(m,n,p) 將當(dāng)前圖窗劃分為 m×n 網(wǎng)格,并在 p 指定的位置創(chuàng)建坐標(biāo)區(qū)。MATLAB? 按行號(hào)對(duì)子圖位置進(jìn)行編號(hào)。第一個(gè)子圖是第一行的第一列,第二個(gè)子圖是第一行的第二列,依此類(lèi)推。如果指定的位置已存在坐標(biāo)區(qū),則此命令會(huì)將該坐標(biāo)區(qū)設(shè)為當(dāng)前坐標(biāo)區(qū)。
subplot(m,n,p,'replace') 刪除位置 p 處的現(xiàn)有坐標(biāo)區(qū)并創(chuàng)建新坐標(biāo)區(qū)。
subplot(m,n,p,'align') 創(chuàng)建新坐標(biāo)區(qū),以便對(duì)齊圖框。此選項(xiàng)為默認(rèn)行為。
subplot(m,n,p,ax) 將現(xiàn)有坐標(biāo)區(qū) ax 轉(zhuǎn)換為同一圖窗中的子圖。
subplot('Position',pos) 在 pos 指定的自定義位置創(chuàng)建坐標(biāo)區(qū)。使用此選項(xiàng)可定位未與網(wǎng)格位置對(duì)齊的子圖。指定 pos 作為 [left bottom width height] 形式的四元素向量。如果新坐標(biāo)區(qū)與現(xiàn)有坐標(biāo)區(qū)重疊,新坐標(biāo)區(qū)將替換現(xiàn)有坐標(biāo)區(qū)。
subplot(___,Name,Value) 使用一個(gè)或多個(gè)名稱-值對(duì)組參數(shù)修改坐標(biāo)區(qū)屬性。在所有其他輸入?yún)?shù)之后設(shè)置坐標(biāo)區(qū)屬性。
ax = subplot(___) 創(chuàng)建一個(gè) Axes 對(duì)象、PolarAxes 對(duì)象或 GeographicAxes 對(duì)象。以后可以使用 ax 修改坐標(biāo)區(qū)。
subplot(ax) 將 ax 指定的坐標(biāo)區(qū)設(shè)為父圖窗的當(dāng)前坐標(biāo)區(qū)。如果父圖窗尚不是當(dāng)前圖窗,此選項(xiàng)不會(huì)使父圖窗成為當(dāng)前圖窗。
示例
上部和下部子圖
創(chuàng)建帶有兩個(gè)堆疊子圖的圖窗。在每個(gè)子圖上繪制一條正弦波。
subplot(2,1,1);
x = linspace(0,10);
y1 = sin(x);
plot(x,y1)
subplot(2,1,2);
y2 = sin(5*x);
plot(x,y2)
如圖所示:
子圖的象限?
創(chuàng)建一個(gè)分為四個(gè)子圖的圖窗。在每個(gè)子圖上繪制一條正弦波并為每個(gè)子圖指定標(biāo)題。
subplot(2,2,1)
x = linspace(0,10);
y1 = sin(x);
plot(x,y1)
title('Subplot 1: sin(x)')
subplot(2,2,2)
y2 = sin(2*x);
plot(x,y2)
title('Subplot 2: sin(2x)')
subplot(2,2,3)
y3 = sin(4*x);
plot(x,y3)
title('Subplot 3: sin(4x)')
subplot(2,2,4)
y4 = sin(8*x);
plot(x,y4)
title('Subplot 4: sin(8x)')
如圖所示:
大小不同的子圖
創(chuàng)建一個(gè)包含三個(gè)子圖的圖窗。在圖窗的上半部分創(chuàng)建兩個(gè)子圖,并在圖窗的下半部分創(chuàng)建第三個(gè)子圖。在每個(gè)子圖上添加標(biāo)題。
subplot(2,2,1);
x = linspace(-3.8,3.8);
y_cos = cos(x);
plot(x,y_cos);
title('Subplot 1: Cosine')
subplot(2,2,2);
y_poly = 1 - x.^2./2 + x.^4./24;
plot(x,y_poly,'g');
title('Subplot 2: Polynomial')
subplot(2,2,[3,4]);
plot(x,y_cos,'b',x,y_poly,'g');
title('Subplot 3 and 4: Both')
如圖所示:
將子圖替換為空坐標(biāo)區(qū)?
創(chuàng)建一個(gè)包含四個(gè)隨機(jī)數(shù)據(jù)針狀圖的圖窗。然后將第二個(gè)子圖替換為空坐標(biāo)區(qū)。?
for k = 1:4
data = rand(1,10);
subplot(2,2,k)
stem(data)
end
如圖所示:
subplot(2,2,2,'replace')
如圖所示:
自定義位置上的子圖?
創(chuàng)建包含兩個(gè)未與網(wǎng)格位置對(duì)齊的子圖的圖窗。為每個(gè)子圖指定一個(gè)自定義位置。
pos1 = [0.1 0.3 0.3 0.3];
subplot('Position',pos1)
y = magic(4);
plot(y)
title('First Subplot')
pos2 = [0.5 0.15 0.4 0.7];
subplot('Position',pos2)
bar(y)
title('Second Subplot')
如圖所示:
創(chuàng)建包含極坐標(biāo)區(qū)的子圖?
創(chuàng)建包含兩個(gè)極坐標(biāo)區(qū)的圖窗。在上部子圖中創(chuàng)建極坐標(biāo)線圖,在下部子圖中創(chuàng)建極坐標(biāo)散點(diǎn)圖。
figure
ax1 = subplot(2,1,1,polaraxes);
theta = linspace(0,2*pi,50);
rho = sin(theta).*cos(theta);
polarplot(ax1,theta,rho)
ax2 = subplot(2,1,2,polaraxes);
polarscatter(ax2,theta,rho)
如圖所示:
創(chuàng)建后修改坐標(biāo)區(qū)屬性
創(chuàng)建帶有兩個(gè)子圖的圖窗。將 Axes 對(duì)象賦給變量 ax1 和 ax2。將 Axes 對(duì)象指定為繪圖函數(shù)的輸入,以確保繪圖函數(shù)在特定的子圖中進(jìn)行繪制。
ax1 = subplot(2,1,1);
Z = peaks;
plot(ax1,Z(1:20,:))
ax2 = subplot(2,1,2);
plot(ax2,Z)
如圖所示:
通過(guò)設(shè)置 Axes 對(duì)象的屬性來(lái)修改坐標(biāo)區(qū)。更改上部子圖的字體大小和下部子圖的線寬。某些繪圖函數(shù)可設(shè)置坐標(biāo)區(qū)屬性。先執(zhí)行繪圖函數(shù),然后指定坐標(biāo)區(qū)屬性以免覆蓋現(xiàn)有坐標(biāo)區(qū)屬性的設(shè)置。使用圓點(diǎn)表示法設(shè)置屬性。?
使子圖成為當(dāng)前坐標(biāo)區(qū)
創(chuàng)建一個(gè)包含多個(gè)子圖的圖窗。將 Axes 對(duì)象存儲(chǔ)在向量 ax 中。然后使第二個(gè)子圖成為當(dāng)前坐標(biāo)區(qū)。創(chuàng)建一個(gè)線圖并更改第二個(gè)子圖的坐標(biāo)軸范圍。默認(rèn)情況下,圖形函數(shù)作用于當(dāng)前坐標(biāo)區(qū)。
for k = 1:4
ax(k) = subplot(2,2,k);
end
subplot(ax(2))
x = linspace(1,50);
y = sin(x);
plot(x,y,'Color',[0.1, 0.5, 0.1])
title('Second Subplot')
axis([0 50 -1 1])
如圖所示:
將現(xiàn)有坐標(biāo)區(qū)轉(zhuǎn)換為子圖?
創(chuàng)建一個(gè)線圖。然后轉(zhuǎn)換坐標(biāo)區(qū),使其成為圖窗的下部子圖。subplot 函數(shù)使用原始坐標(biāo)區(qū)所在的圖窗。
x = linspace(1,10);
y = sin(x);
plot(x,y)
title('Sine Plot')
如圖所示:
ax = gca;
subplot(2,1,2,ax)
如圖所示:
將不同圖窗中的坐標(biāo)區(qū)轉(zhuǎn)換為子圖?
將位于不同圖窗中的坐標(biāo)區(qū)合并到包含子圖的單個(gè)圖窗中。
在兩個(gè)不同的圖窗中創(chuàng)建兩個(gè)圖。將 Axes 對(duì)象賦給變量 ax1 和 ax2。將 Legend 對(duì)象賦給變量 lgd。
figure
x = linspace(0,10);
y1 = sin(x);
plot(x,y1)
title('Line Plot 1')
如圖所示:
ax1 = gca;
figure
y2 = 2*sin(x);
plot(x,y2)
title('Line Plot 2')
lgd = legend('2*Sin(x)');
如圖所示:
ax2 = gca;
使用 copyobj 創(chuàng)建兩個(gè) Axes 對(duì)象的副本。將復(fù)制的坐標(biāo)區(qū)的父級(jí)指定為新圖窗。由于圖例和顏色欄不會(huì)隨相關(guān)坐標(biāo)區(qū)一起復(fù)制,因此請(qǐng)隨坐標(biāo)區(qū)一起復(fù)制圖例。
fnew = figure;
ax1_copy = copyobj(ax1,fnew);
subplot(2,1,1,ax1_copy)
copies = copyobj([ax2,lgd],fnew);
ax2_copy = copies(1);
subplot(2,1,2,ax2_copy)
如圖所示:
?輸入?yún)?shù)說(shuō)明
m - 網(wǎng)格行數(shù)
????????網(wǎng)格行數(shù),指定為正整數(shù)。
n - 網(wǎng)格列數(shù)
????????網(wǎng)格列數(shù),指定為正整數(shù)。
p - 新坐標(biāo)區(qū)的網(wǎng)格位置
新坐標(biāo)區(qū)的網(wǎng)格位置,指定為標(biāo)量或正整數(shù)向量。
- 如果 p 是正整數(shù)標(biāo)量,則 subplot 在網(wǎng)格位置 p 處創(chuàng)建一個(gè)子圖。
- 如果 p 是正整數(shù)向量,則 subplot 新建一個(gè)跨 p 中列出的網(wǎng)格位置的子圖。
示例:subplot(2,3,1) 在位置 1 處創(chuàng)建一個(gè)子圖。
示例:?subplot(2,3,[2,5]) 創(chuàng)建跨位置 2 和 5 的子圖。
示例:?subplot(2,3,[2,6]) 創(chuàng)建跨位置 2、3、5 和 6 的子圖。
pos - 新坐標(biāo)區(qū)的自定義位置
????????新坐標(biāo)區(qū)的自定義位置,指定為 [left bottom width height] 形式的四元素向量。
- left 和 bottom 元素指定子圖的左下角相對(duì)于圖窗的左下角的位置。
- width 和 height 元素指定子圖維度。
????????指定介于 0 和 1 之間的歸一化值(基于圖窗內(nèi)界)。
????????注意:使用腳本創(chuàng)建子圖時(shí),在發(fā)出 drawnow 命令或 MATLAB 返回到等待用戶命令之前,MATLAB 不會(huì)最終確定 Position 屬性值。在腳本刷新繪圖或退出之前,子圖的 Position 屬性值會(huì)受到變化的影響。
ax - 要設(shè)為當(dāng)前坐標(biāo)區(qū)或轉(zhuǎn)換為子圖的現(xiàn)有坐標(biāo)區(qū)
????????要設(shè)為當(dāng)前坐標(biāo)區(qū)或轉(zhuǎn)換為子圖的現(xiàn)有坐標(biāo)區(qū),指定為 Axes 對(duì)象、PolarAxes 對(duì)象、GeographicAxes 對(duì)象或具有 PositionConstraint 屬性的圖形對(duì)象,如 HeatmapChart 對(duì)象。
????????要在子圖位置創(chuàng)建空的極坐標(biāo)區(qū)或地理坐標(biāo)區(qū),請(qǐng)將 ax 指定為 polaraxes 或 geoaxes 函數(shù)。例如,subplot(2,1,2,polaraxes)。
提示
- 要清除圖窗的內(nèi)容,請(qǐng)使用 clf。例如,您可以在創(chuàng)建新子圖布局之前清除圖窗中的現(xiàn)有子圖布局。
- 要疊加坐標(biāo)區(qū),請(qǐng)改用 axes 命令。subplot 函數(shù)會(huì)刪除與新坐標(biāo)區(qū)重疊的現(xiàn)有坐標(biāo)區(qū)。例如,subplot('Position',[.35 .35 .3 .3]) 會(huì)刪除所有底層坐標(biāo)區(qū),但 axes('Position',[.35 .35 .3 .3]) 會(huì)將新坐標(biāo)區(qū)置于圖窗的中部而不刪除底層坐標(biāo)區(qū)。
- subplot(111) 是一個(gè)例外,其行為與 subplot(1,1,1) 不同。出于向后兼容的原因,subplot(111) 是子圖的一種特殊情況,它不立即創(chuàng)建坐標(biāo)區(qū),而是設(shè)置圖窗,以便接下來(lái)的圖形命令執(zhí)行 clf reset。接下來(lái)的圖形命令將刪除所有圖窗子級(jí),并在默認(rèn)位置創(chuàng)建新的坐標(biāo)區(qū)。subplot(111) 不返回 Axes 對(duì)象,如果代碼指定了返回參數(shù),將會(huì)發(fā)生錯(cuò)誤。
替代功能
?????????使用?tiledlayout?和?nexttile?函數(shù)創(chuàng)建可配置的繪圖平鋪。配置選項(xiàng)包括:?
- 對(duì)繪圖之間和布局邊緣周?chē)g距的控制
- 布局頂部共享標(biāo)題的選項(xiàng)
- 共享 x 軸和 y 軸標(biāo)簽的選項(xiàng)
- 用于控制分塊是固定大小還是可以調(diào)整的可變大小的選項(xiàng)
總結(jié)
原文鏈接:https://blog.csdn.net/jk_101/article/details/125404272
相關(guān)推薦
- 2022-09-21 Android開(kāi)發(fā)之AAR文件的生成與使用步驟_Android
- 2022-03-12 Android實(shí)現(xiàn)流光和光影移動(dòng)效果代碼_Android
- 2022-11-20 C#實(shí)現(xiàn)公式計(jì)算驗(yàn)證碼的示例詳解_C#教程
- 2022-03-16 swift?cell自定義左滑手勢(shì)處理方法_Swift
- 2022-07-21 ubutu虛擬機(jī)和主機(jī)共享同一網(wǎng)絡(luò)
- 2024-03-05 git查看用戶信息命令
- 2022-11-08 go按行讀取文件的三種實(shí)現(xiàn)方式匯總_Golang
- 2022-06-11 FreeRTOS進(jìn)階之任務(wù)切換完全分析_操作系統(tǒng)
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支