Adding existing axes objects to a new tiledlayout

69 views (last 30 days)
I have a cell-array of axes-objects which all have different parents. Now I would like to transfer all those objects to the same tiledlayout. I tried changing their parents one-by-one, but then they all appear in the same tile:
f = figure();
t = tiledlayout(3,3);
for i = 1:9
set(arrayOfAxes{i}, 'Parent', t);
I also tried using nexttile() in the for loop, but this didn't help. Is there a way to specify which tile an axes-object belongs to within tiledlayout?
Appreciate you help very much!

Accepted Answer

Reshma Nerella
Reshma Nerella on 29 Oct 2020
Edited: Reshma Nerella on 29 Oct 2020
Hi Christoph,
set(arrayOfAxes{i}, 'Parent', t); % axes object can not be a child of t(tiledlayout)
Each tile in 'tiledlayout' contains an axes, you can plot directly without creating axes in the layout. Once you plot something, you can use 'nexttile' to plot on the next tile.
In case you want a layout with axes in all the tiles, you can create a grid layout manager, it creates an invisible grid and positions components(like axes) along the rows and columns of the grid.
For more information and examples, refer to the documentation pages tiledlayout, nexttile and uigridlayout

More Answers (1)

Tim Baur
Tim Baur on 13 Dec 2021


Find more on Axes Appearance in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!