File Exchange

image thumbnail


version (10 KB) by jiro
Interactively pan, zoom, center view a plot using the mouse

1 Download

Updated 01 Sep 2016

View Version History

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 (2021). INTERACTIVEMOUSE (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (14)

Marko Usaj

Excellent tool!
Can anyone help me how to add functionality which would get/store the coordinates by mouse clicking. That would be awesome! Thanks for anyone help and time!

Robbin van Hoek

Awesome! Thank you very much!

Would be even better if it was able to work together with your 'vertical_cursors' submission:
left click -> vertical cursors
right drag -> zooming
shift click-> panning

Adrian Abordo

Thanks! Makes data exploration real easy.

Carla F.

Very nice work! Many thanks!!


you are a hero. life is different now.


problem with time series plotting: x-axis values are converted into numerical values.

Efrain Zenteno

Works excellent

Dan Kanak

great help - thanks!!

Jakob Kleinbach

Such a great tool. Thank you!

julien charton

now, even labVIEW freaks are impressed when I zoom in Matlab.

Sachin Lohani

Works like magic...great job!

Jennifer Horsman

I'm using 6.5 Rel 13. This tool works wonderfully. I am using it in a 3D plot (several planar surfaces crossing each other) and I am so glad it does not change the XYZ proportions when zooming in and out.

Diego Barragán


Don Riley

Worked nicely for me. Appears to have better performance than built in pan. Worked on a figure with two images and a figure with a imscrollpanel (from IPT), and in R2006a.

MATLAB Release Compatibility
Created with R13
Compatible with any release
Platform Compatibility
Windows macOS Linux

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!