Need help in MATLAB tiled layouts (nested)
85 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I'm currently engaged in plotting figures within MATLAB and I'm aiming to create a figure with tiled layouts. I've managed to plot using tiled layout but in one of my use cases, I need to plot a tiled layout within another tiled layout, something like nested tiled layouts.
t=tiledlayout(2,2);
[X,Y,Z] = peaks(20);
% Tile 1
t1= nexttile(t);
t1=tiledlayout(1,2);
nexttile(t1)
surf(X,Y,Z)
nexttile(t1)
surf(X,Y,Z)
% Tile 2
nexttile(t)
contour(X,Y,Z)
% Tile 3
nexttile(t)
imagesc(Z)
% Tile 4
nexttile(t)
plot3(X,Y,Z)
I have gone through documentation and tried the above code but not working
Any insights or guidance would be greatly appreciated!
1 Commento
Risposta accettata
Voss
il 14 Mag 2024
Something like this?
t=tiledlayout(2,2);
[X,Y,Z] = peaks(20);
% Tile 1
t1=tiledlayout(t,1,2);
nexttile(t1)
surf(X,Y,Z)
nexttile(t1)
surf(X,Y,Z)
% Tile 2
nexttile(t)
contour(X,Y,Z)
% Tile 3
nexttile(t)
imagesc(Z)
% Tile 4
nexttile(t)
plot3(X,Y,Z)
2 Commenti
Voss
il 14 Mag 2024
Yes
t1=tiledlayout(t,1,2);
creates a tiledlayout t1 of size 1x2 in the 2x2 tiledlayout t. t is the parent of t1.
Here is another example, with more layers of nesting:
[X,Y,Z] = peaks(20);
figure
t = tiledlayout(2,2);
% Tile 1
t1 = tiledlayout(t,1,2);
t1.Layout.Tile = 1;
nexttile(t1);
surf(X,Y,Z)
t12 = tiledlayout(t1,2,1);
t12.Layout.Tile = 2;
nexttile(t12);
surf(X,Y,Z)
nexttile(t12);
plot3(X,Y,Z)
% Tile 2
t2 = tiledlayout(t,3,1);
t2.Layout.Tile = 2;
nexttile(t2)
contour(X,Y,Z)
nexttile(t2)
contourf(X,Y,Z)
nexttile(t2)
plot3(X,Y,Z)
% Tile 3
t3 = tiledlayout(t,1,3);
t3.Layout.Tile = 3;
nexttile(t3)
imagesc(X)
nexttile(t3)
imagesc(Y)
nexttile(t3)
imagesc(Z)
% Tile 4
nexttile(t)
plot3(X,Y,Z)
Più risposte (1)
Matt J
il 14 Mag 2024
Modificato: Matt J
il 14 Mag 2024
If you download nestedLayouts,
you can do it as follows:
[X,Y,Z] = peaks(20);
ax=nestedLayouts([2,2],[1,2]);
for i=[3,5,7]
ax(i).Layout.TileSpan=[1,2];
delete(ax(i+1));
end
surf(ax(1),X,Y,Z)
surf(ax(2),X,Y,Z)
contour(ax(3),X,Y,Z)
imagesc(ax(5),Z)
plot3(ax(7), X,Y,Z)
2 Commenti
Vedere anche
Categorie
Scopri di più su Annotations in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!