How to create tiledlayout grid in vertical order
95 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Dyuman Joshi
2023-11-7
编辑:Dyuman Joshi
2023-11-7
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 个评论
ani-per
2024-9-14
Thanks Dyuman! That option should really be exposed on the documentation, it's really helpful.
更多回答(2 个)
Voss
2023-11-7
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 个评论
Les Beckham
2023-11-7
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 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!