MOUSE_FIGURE(handle) creates a figure (or modifies an existing one with handle [handle]) that allows zooming with the scroll wheel and panning with mouse clicks, *without* first selecting the ZOOM or PAN tools from the toolbar. Moreover, zooming occurs to and from the point the mouse currently hovers over, instead of to and from the less intuitive "CameraPosition" as is the case with the default ZOOM. Naturally, the classical ZOOM and PAN toolbar icons are left unaltered.
Mouse button functionality:
Scroll: zoom in/out
Left click: pan
Double click: reset view to default view
Right click: set new default view
LIMITATIONS: This function (re-)efines several functions in the figure (WindowScrollWheelFcn, WindowButtonDownFcn, WindowButtonUpFcn and WindowButtonMotionFcn), so if you have any of these functions already defined they will get overwritten. Also, MOUSE_FIGURE() only works properly for 2-D plots. As such, it should only be used for simple, first-order plots intended for "quick-n-dirty" data exploration. Only tested on MATLAB 2009a, on WinXP platform.
x = linspace(-1, 1, 10000);
y = sin(1./x);
Rody Oldenhuis (2020). Mouse-friendly FIGURE (https://github.com/rodyo/FEX-mouse_figure/releases/tag/v1.3), GitHub. Retrieved .
very nice function . thnak you
actually, I want to draw some interactive ROI (rectangles and polylines) , however when I want to draw, the "pan" functinality will work at the same time . how can we disable the "pan" (but not the zooming) while drawing a ROI ?
Quite useful. Thanks.
very nice. only behavior missing for me is the auto zoom, when you double click in the figure. It sets the axis to [01 01] instead of making the whole plot visible. All the other handling is very nice
just what I was looking for!! thanks :)
Excellent! Just what I needed. Simple and effective. Modified it slightly for x-only zoom.
Very intuitive controls to explore 2D data :)
See release notes for this release on GitHub: https://github.com/rodyo/FEX-mouse_figure/releases/tag/v1.3
- updated PayPal link
[linked to Github]
Updated contact info