How to change the layer order of axes?
48 views (last 30 days)
Show older comments
I have figure with tiledlayout, e.g. with (2,2) arrangement. The layer order will be tile-1, tile-2, tile-3, tile-4. Tile-4 is the uppermost while tile-1 is the lowermost layer. All 4 tiles have let's say a surf plot on it.
If I switch off clippings for each axes I can enlarge the content of all 4 axes. The enlarged figures, however, are behind each other, only the uppermost layer can be fully visible, all the others are, at least partly, behind other axes. How can I change interactively (I mean when I use the zoom for a specific axes) the layer order of the axes, in order to put the interesting axes to the uppermost layer and be able to fully see the enlarged content of that axes?
hfig=figure(12345);
tt=tiledlayout(2,2);
[X,Y,Z] = peaks(25);
CO(:,:,1) = zeros(25); % red
CO(:,:,2) = ones(25).*linspace(0.5,0.6,25); % green
CO(:,:,3) = ones(25).*linspace(0,1,25); % blue
ti1=nexttile(tt,1);
surf(X,Y,Z,CO);
ti1.Clipping='off';
ti2=nexttile(tt,2);
surf(X,Y,Z,CO);
ti2.Clipping='off';
ti3=nexttile(tt,3);
surf(X,Y,Z,CO);
ti3.Clipping='off';
ti4=nexttile(tt,4);
surf(X,Y,Z,CO);
ti4.Clipping='off';
%% Try to zoom axes!
0 Comments
Accepted Answer
Walter Roberson
on 6 Nov 2021
Edited: Walter Roberson
on 6 Nov 2021
Set axes ButtonDownFcn callbacks, where the action is uistack(CurrentObject, 'top') . The CurrentObject should be the same as the first parameter passed to the callback function.
Note: uistack does not work for uifigure()
4 Comments
Adam Danz
on 17 Mar 2023
Edited: Adam Danz
on 17 Mar 2023
Starting in MATLAB R2023a you can use uistack to control the stacking order of ui components in a uifigure. See release notes.
More Answers (1)
Matt J
on 6 Nov 2021
You can re-order the Children property of the TiledChardLayout,e.g.,
tt.Children=flip(tt.Children)
0 Comments
See Also
Categories
Find more on Interactive Control and Callbacks 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!