Zoom tools from Toolbar does not work properly on every axes, Matlab GUI.
11 views (last 30 days)
Show older comments
Fabio Rossi
on 12 Jun 2017
Commented: Haifei Cheng
on 21 Dec 2017
Hi guys,
I edit a GUI with some Toolbar Tools like zoom in, zoom out, ect.. I work with three different axes which are totally overlapped, so I control their visibility using the set(handles.'axes_tag','Visible','on/off') command.
I have some problems to use tools because they don't works on each axes: in fact, I have two axes with off visibility and one visible but the tools consider the first two and not the last one. I also tried to set zoom on/off for the target axes using zoom(handle.axes_tag,'on/off') command but it seems to haven't any effect.
Can someone explain me what am I wrong or the cause of this behaviour?
Thanks for attention,
Fabio
5 Comments
Kristoffer Walker
on 22 Nov 2017
I have the same problem. I have two layers so that I can easily toggle back and forth between two figure "views". One layer is underneath and invisible. The active one is visible. But Matlab is confused when I use the zoom tool in one of the visible axes I think. I think Matlab is registering that the mouse is hovering over an invisible axes, and so it does not zoom in/out when I release the mouse button after drawing the rectangle. What we need is a way for Matlab to scan multiple axes that are overlaid, and only zoom into the top most one if it is visible.
Kris
Accepted Answer
Image Analyst
on 13 Jun 2017
Edited: Image Analyst
on 13 Jun 2017
Sending in the axes control to each tool, like cla or zoom, should work. If it doesn't then try to set the default axes before with the axes command:
axes(handles.subplot1); % Set current axes to the desired one.
zoom(3); % Use zoom with no handles.
See if that works.
Or you can use a scroll panel. See attached demo.
0 Comments
More Answers (1)
Steven Lord
on 13 Jun 2017
Use the setAllowAxesZoom method of the zoom mode object to control which axes are allowed to zoom and which are not.
1 Comment
Haifei Cheng
on 21 Dec 2017
This solution works great, it also works for setAllowAxesPan. We have to set other axes off and set current axes on to make it work. Thanks for the neat solution!
See Also
Categories
Find more on Graphics Performance 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!