How to create tiledlayout grid in vertical order
69 views (last 30 days)
Show older comments
Hello,
How to create tiledlayout grid in vertical order?
Let's say I want to create a tiledlayout(3,2), matlab default order is
1 2
3 4
5 6
But I want the lay out to be:
1 4
2 5
3 6
How do I do that?
Thanks,
Ping
0 Comments
Accepted Answer
Dyuman Joshi
on 7 Nov 2023
Edited: Dyuman Joshi
on 7 Nov 2023
Change the Tile-indexing to Column Major, the default is Row Major.
tiledlayout(3, 2, 'TileIndexing', 'columnmajor')
nexttile
fplot(@sin, 'k')
title('1')
nexttile
fplot(@cos, 'r')
title('2')
nexttile
scatter(rand(1,10),rand(1,10), [], [1 0 1])
title('3')
nexttile
fplot(@(x) x.^2, 'g')
title('4')
nexttile
fsurf(@(x,y) sin(x)+cos(y))
title('5')
nexttile
fimplicit(@(x,y) x.^2 - y.^2 - 1)
title('6')
5 Comments
ani-per
on 14 Sep 2024
Thanks Dyuman! That option should really be exposed on the documentation, it's really helpful.
More Answers (2)
Voss
on 7 Nov 2023
Set up variables:
n_rows = 3;
n_cols = 2;
n = n_rows*n_cols;
data = (1:n)+zeros(10,1);
Default tiledlayout order, for reference:
figure
tiledlayout(n_rows,n_cols)
for ii = 1:n
nexttile()
plot(data(:,ii))
title(sprintf('%d',ii));
xlim([1 10])
ylim([0 n+1])
end
Reordering the layout:
idx = reshape(1:n,n_cols,[]).'
figure
tiledlayout(n_rows,n_cols)
for ii = 1:n
nexttile(idx(ii))
plot(data(:,ii))
title(sprintf('%d',ii));
xlim([1 10])
ylim([0 n+1])
end
0 Comments
Les Beckham
on 7 Nov 2023
The tiles are always numbered by row, column, but you can plot into the tiles in whatever order you want by specifying the tile (using Matlab's ordering).
tiledlayout(3,2)
nexttile
title 'First plot'
nexttile(3)
title 'Second plot'
nexttile(5)
title 'Third plot'
nexttile(2)
title 'Fourth plot'
nexttile(4)
title 'Fifth plot'
nexttile(6)
title 'Sixth plot'
0 Comments
See Also
Categories
Find more on 2-D and 3-D Plots 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!