一、tiledlayout簡介
tiledlayout是Matlab 2019a新增加的一個布局對象,它提供了一種靈活的方法來創建並排的坐標軸。本身也是一個坐標軸,可以用於在圖形中放置其它坐標軸。此外,tiledlayout還提供了訪問軸和坐標軸屬性的方法。
二、創建tiledlayout對象
使用tiledlayout函數可以創建tiledlayout對象,需要指定行和列的數量。創建好tiledlayout對象後,就可以在其中創建並排的坐標軸了。
% 創建一個4行3列的tiledlayout tiledlayout(4,3);
三、創建坐標軸
tiledlayout內的每個坐標軸都由nexttile函數創建,這個函數會返回獨立的Axes對象,這個對象可以像Matlab中的任何其他坐標軸一樣使用。
通常,您想要在tiledlayout中使用的繪圖代碼與在單個坐標軸上使用的繪圖代碼相同。使用nexttile函數時,傳遞行和列索引以指定要在哪個區域繪圖。您還可以指定其他可選參數,例如跨行和跨列的數量或布局方向(水平或垂直)。
% 在第1行1列創建一個空坐標軸 nexttile; % 在多個坐標軸中同時繪圖 for num = 2:12 nexttile; plot(rand(5,1)); end
四、設置布局方式
在tiledlayout中創建坐標軸後,可以更改其布局方式以滿足特定需求,例如要列印的頁面尺寸或要在其中添加的圖形數量。以下是一些可以設置的選項:
- TileSpacing:坐標軸之間的距離,可以設置像素或百分比。默認值為「Loose」。
- Padding:外邊距,指定坐標軸與圖形元素邊緣的距離。可以設置以像素或百分比為單位。
- TileSpan:包含一個坐標軸的網格單元數。例如,水平方向上的3表示坐標軸跨越3列。
- Direction:指定了坐標軸的水平或垂直布局。
% 創建2x2的tiledlayout,並使用各種選擇設置其布局 tiledlayout(2,2,'TileSpacing','compact','Padding','tight','TileSpan',[2 1],'Direction','horizontal'); nexttile; plot(1:10); nexttile; plot(1:10); nexttile([2,1]); plot(1:10); nexttile; plot(1:10);
五、從tiledlayout中獲取坐標軸對象
tiledlayout對象包含一個Axes屬性,該屬性是Axes對象的數組。此數組包含了x-by-y的數組,其中每個坐標軸都對應一個網格元素。您可以按照其索引訪問每個坐標軸,或者按照行和列訪問其編號。
% 獲取第3個坐標軸的對象,行索引為1,列索引為3 ax = tiledlayout.Axes(1,3); % 將tiledlayout數組視為一個線性索引,並獲取第7個坐標軸的對象 ax = tiledlayout.Axes(7);
六、使用tiledlayout進行多圖繪製
tiledlayout和nexttile方法非常適合製作多個子圖像。下面是一個使用tiledlayout和nexttile創建的示例。
% 創建一個3x3的tiledlayout,包含以不同方向「流動」元素 tiledlayout(3,3,'TileSpacing','none','Padding','none'); nexttile([1 2]); surfc(peaks); nexttile([1 1]); plot(rand(5,1)); nexttile; stem(1:10); nexttile; imagesc(magic(5)); nexttile([1 2]); polarplot(peaks); nexttile; histogram(randn(1000,1)); nexttile(7); polarhistogram(randn(10000,1)); nexttile(9); compass(randn(5,1));
七、總結
本文詳細介紹了tiledlayout及其使用方法,包括創建tiledlayout對象、創建坐標軸、設置布局方式、從tiledlayout中獲取坐標軸對象和使用tiledlayout進行多圖繪製等。tiledlayout和nexttile方法非常適合在Matlab中製作多個子圖像,可以極大地簡化繁瑣的製圖過程,提高製圖效率。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/220095.html