Interactively pan, zoom, center view a plot using the mouse
Updated 1 Sep 2016

View License

After I made this in R13 and testing it in R14, I noticed that the PAN function had a similar functionality. However, This function has additional features (zoom and center view)
INTERACTIVEMOUSE toggles the interactive mode of the current figure.
INTERACTIVEMOUSE ON turns on the interactive mode.
INTERACTIVEMOUSE OFF turns off the interactive mode.
INTERACTIVEMOUSE RESET sets the 'restore point' to the current view.
INTERACTIVEMOUSE RESTORE restores the view to the 'restore point'. The 'restore point' is predefined as the original view, unless the current view is set as the 'restore point' with RESET.
INTERACTIVEMOUSE RESTORE_ORIG restores the view to the original view (the view before INTERACTIVEMOUSE was initially called on this figure). This 'restore point' is fixed regardless of whether RESET was called or not.

INTERACTIVEMOUSE(FIG) and INTERACTIVEMOUSE(FIG, OPTION) applies to the figure specified by handle FIG. FIG can be a vector of figure handles. OPTION can be any of the above arguments. The figure(s) can have multiple axes.

The following features are included in the interactive mode:
Pan : click and drag.
Zoom : right click (or CNTRL-click) and drag.
Center View : double click.
Reset View : <r> with the cursor over the axes region. This resets 'restore point'. (see above note about RESET option)
Restore View : <space> with the cursor over the axes region. This restores to the 'restore point'. (see above note about RESTORE option)
Help window : <h>
Exit mode : <escape>

Note about Zoom Feature:
(2D views) : the zoom ratio depends on the location of the pointer with respect to the initial click location. Pressing the <shift> key ONCE toggles the constrained mode. In CONSTRAINED mode, the zoom ratio is constrained along x-axis, y-axis, or xy-axes depending on the pointer location. The figure window title indicates that constraint mode is active. If the axes DataAspectRatioMode is MANUAL, the zoom will always be constrained to preserve the specified aspect ratio (PROPORTIONAL mode). This is for working with images.

(3D views) : the zoom is always xyz-constrained (PROPORTIONAL). The aspect ratios are always preserved.

In the interactive mode, several figure and axes properties are set, but the current properties are restored when the interactive mode is exited. During interactive mode, the figure name changes to 'InteractiveMouse', and the figure is undocked (certain features don't work in docked mode). This works with 2D plots, images, and 3D plots (for the most part).

% Interactively examine high frequency noise

% Multiple axes
load clown;
subplot(211);image(X);colormap(map);axis image;
subplot(212);plot(rand(100,1), '.-');

% Use LINKAXES to link multiple axes. (>R13)
ax(1)=subplot(211);plot(rand(100,1), 'r.-');
ax(2)=subplot(212);plot(rand(100,1), '.-');

See also zoom, pan, linkaxes

Cite As

Jiro Doke (2024). INTERACTIVEMOUSE (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R13
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on Visual Exploration in Help Center and MATLAB Answers

Inspired by: view3d.m, Zoom Keys, drag.m, GRABIT

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

Updated license

The zoom factor displayed on the graph is in relation to the original figure size, as opposed to the current figure size. Modify help text.