天天看點

matlab title混合字型_MATLAB作圖執行個體:3:多圖合并

matlab title混合字型_MATLAB作圖執行個體:3:多圖合并

本示例說明如何使用

hold

功能在同一坐标系下組合繪圖,以及如何使用

tiledlayout

功能在圖形中建立多個軸。該

tiledlayout

功能在R2019b開始提供。如果使用的是早期版本,請改用該

subplot

函數。

在相同的軸上合并圖

預設情況下,新圖清除現有圖并重置軸屬性,例如标題。但是,您可以使用該

hold on

指令在同一軸上合并多個圖。例如,繪制兩條線和一個散點圖。然後将保持狀态重置為關閉。

x = linspace(0,10,50);
 y1 = sin(x);
 plot(x,y1)
 title('Combine Plots')
 ​
 hold on%確定目前圖形内容不清除,後續可以繼續在圖面上添加内容
 ​
 y2 = sin(x/2);
 plot(x,y2)
 ​
 y3 = 2*sin(x);
 scatter(x,y3) 
 ​
 hold off
           
matlab title混合字型_MATLAB作圖執行個體:3:多圖合并

保持狀态打開時,新圖不會清除現有圖或重置軸屬性,例如标題或軸标簽。繪圖根據軸的

ColorOrder

LineStyleOrder

屬性在顔色和線條樣式之間循環。軸線範圍和刻度值可能會調整以适應新資料。

在圖形中顯示多個軸

通過使用該

tiledlayout

功能,可以在一個圖形中顯示多個軸。此功能建立一個平鋪的圖表布局,其中包含整個圖上不可見的平鋪網格。每個圖塊可以包含一個用于顯示圖的軸。建立布局後,調用該

nexttile

函數以将軸對象放置到布局中。然後調用一個繪圖函數來繪制軸。例如,以2×1布局建立兩個圖。為每個圖添加标題。

注意:

此代碼使用

tiledlayout

從R2019b開始可用的功能。如果使用的是早期版本,請改用

subplot

函數。

x = linspace(0,10,50);
 y1 = sin(x);
 y2 = rand(50,1);
 tiledlayout(2,1) % Requires R2019b or later %定義兩個圖形視窗 
 ​
 % Top plot
 nexttile%通路第一個視窗
 plot(x,y1)
 title('Plot 1')
 ​
 % Bottom plot
 nexttile%通路下一個視窗
 scatter(x,y2)
 title('Plot 2')
           
matlab title混合字型_MATLAB作圖執行個體:3:多圖合并

建立跨越多行或多列的圖

要建立跨越多行或多列的繪圖,請在

span

調用時指定參數

nexttile

。例如,建立2 x 2布局。繪制成前兩個圖塊。然後建立一個跨越一排和兩列的繪圖。

x = linspace(0,10,50);
 y1 = sin(x);
 y2 = rand(50,1);
 ​
 % Top two plots
 tiledlayout(2,2) % Requires R2019b or later
 nexttile
 plot(x,y1)
 nexttile
 scatter(x,y2)%繪制散點圖
 ​
 % Plot that spans
 nexttile([1 2])
 y2 = rand(50,1);%産生随機數,50行1列
 plot(x,y2)
           
matlab title混合字型_MATLAB作圖執行個體:3:多圖合并

修改軸外觀

通過在每個軸對象上設定屬性來修改軸外觀。您可以通過

nexttile

使用帶有輸出參數的函數來擷取axes對象。您還可以将軸對象指定為圖形函數的第一個輸入參數,以確定該函數定位正确的軸。

例如,建立兩個圖并将軸對象配置設定給變量

ax1

ax2

。更改第一個繪圖的軸字型大小和x軸顔色。将網格線添加到第二個圖。

x = linspace(0,10,50);
 y1 = sin(x);
 y2 = rand(50,1);
 tiledlayout(2,1) % Requires R2019b or later
 ​
 % Top plot
 ax1 = nexttile;
 plot(ax1,x,y1)
 title(ax1,'Plot 1')
 ax1.FontSize = 14;
 ax1.XColor = 'red';
 ​
 % Bottom plot
 ax2 = nexttile;
 scatter(ax2,x,y2)
 title(ax2,'Plot 2')
 grid(ax2,'on')
           
matlab title混合字型_MATLAB作圖執行個體:3:多圖合并

控制子圖周圍的間距

您可以通過指定

Padding

TileSpacing

屬性來控制布局中圖塊周圍的間距。例如,以2 x 2布局顯示四個圖。

x = linspace(0,30);
 y1 = sin(x);
 y2 = sin(x/2);
 y3 = sin(x/3);
 y4 = sin(x/4);
 ​
 % Create plots
 t = tiledlayout(2,2); % Requires R2019b or later %獲得圖形視窗對象
 nexttile
 plot(x,y1)
 nexttile
 plot(x,y2)
 nexttile
 plot(x,y3)
 nexttile
 plot(x,y4)
           
matlab title混合字型_MATLAB作圖執行個體:3:多圖合并

Padding

TileSpacing

屬性設定為,以最小化布局周邊和每個圖塊之間的間距

'none'

t.Padding = 'none';
 t.TileSpacing = 'none';
           
matlab title混合字型_MATLAB作圖執行個體:3:多圖合并

顯示共享的标題和軸标簽

您可以在布局中顯示共享标題和共享軸标簽。建立一個2比1的布局

t

。然後顯示一個線圖和一個stem圖。通過調用函數來同步x軸限制

linkaxes

x1 = linspace(0,20,100);
 y1 = sin(x1);
 x2 = 3:17;
 y2 = rand(1,15);
 ​
 % Create plots.
 t = tiledlayout(2,1); % Requires R2019b or later
 ax1 = nexttile;
 plot(ax1,x1,y1)
 ax2 = nexttile;
 stem(ax2,x2,y2)
 ​
 % Link the axes
 linkaxes([ax1,ax2],'x');
           
matlab title混合字型_MATLAB作圖執行個體:3:多圖合并

通過使添加共享标題和共用軸标簽

t

title

xlabel

ylabel

功能。通過移除移動地塊靠得更近X從上圖軸刻度标記和設定

TileSpacing

的屬性

t

'compact'

% Add shared title and axis labels
 title(t,'My Title')
 xlabel(t,'x-values')
 ylabel(t,'y-values')
 ​
 % Move plots closer together
 xticklabels(ax1,{})
 t.TileSpacing = 'compact';
           
matlab title混合字型_MATLAB作圖執行個體:3:多圖合并

注:本文根據MATLAB官網内容修改而成。