File Exchange

image thumbnail


version (4.66 KB) by Nick Sinclair
Creates Montage (subplots) of Specified Figures and their subplots


Updated 03 Aug 2010

View License

This creates a new figure containing subplots of other currently open figures including all non-colorbar axes in the figure (i.e. including subplots).

example: i have figures 12 15 18 open. and I want a montage with 12 and 15 on the first line and 18 on the next.

mfig = MontageFigures([12 15 18], 2,2)

where the horizontal length is the first 2
vertical length is the second 2. This will leave the 4th subplot (2,2) empty.

mfig is the handle to the new figure.

This is similar to the code figs2subplots, but after very few attempts, I couldn't get that to work. So here's something that should work. And it's very simple.

You specify the axis properties that you'd like copied over from the old figures at the beginning of the file. I have a prototype set included.

The code simply copies all of the children of each figures' axes and puts them as children of the subplot axes. Then copies the specified properties to the subplot axes.

In the code you can now adjust size/position of new fig, margins, spacing between subplots. You can also set whether to add ticks and labels only to perimeter plots, if you have many images with the same limits/labels.

If you want to do this with unopened files use the montagefigurefiles(columns,rows), and you will be prompted for the files to use.

If you don't like this script, you can try using:
which I didn't bother to look at, but I'm open to it being better. :)

Cite As

Nick Sinclair (2020). MontageFigures (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (10)

Yu-Lin Tao

Thanks a lot, Nick!


Excellent! Thank you.

Thanks a lot!
Works well!


Works like a charm


Pretty nice, easy to use, and works pretty well.


Thank you Nick Sinclair! The first user-created function I've used and it works very well!


Just tried to read the help text:

>> help montagefigures
by Nick Sinclair ( Jul 08, 2010

So I guess this still needs some work...



It seems to damage my legends. Otherwise works OK.

A screenshot would be SO helpful.


fixed a typo, referring to incorrect axis for xlabel

added screenshot

Fixed problem of copying over legends as separate axes, and added ability to copy legends in an appropriate way.

Added montagefigurefies.m AND ability to replot the subplots of other figures.

Can now adjust
1) size/position of new figure
2) spacing between subplots
3) margins
4) whether to label only perimeter subplots.
These options must be changed in the code, not as parameters to the code. Just too lazy to add that.

just verified it works fine with 7.10 2010a.

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