File Exchange

image thumbnail

MontageFigures

version 1.6 (4.66 KB) by

Creates Montage (subplots) of Specified Figures and their subplots

9 Downloads

Updated

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:
http://www.mathworks.com/matlabcentral/fileexchange/3939-import-fig-file-to-axes
which I didn't bother to look at, but I'm open to it being better. :)

Comments and Ratings (7)

D

D (view profile)

Works like a charm

Jessika

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

Hesh

Hesh (view profile)

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

Zoé

Zoé (view profile)

Just tried to read the help text:

>> help montagefigures
  by Nick Sinclair (nws5@pitt.edu) Jul 08, 2010

So I guess this still needs some work...

Zoé

Zoé (view profile)

jhh

jhh (view profile)

It seems to damage my legends. Otherwise works OK.

Mark Hayworth

Mark Hayworth (view profile)

A screenshot would be SO helpful.

Updates

1.6

fixed a typo, referring to incorrect axis for xlabel

1.5

added screenshot

1.4

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

1.3

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

1.2

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.

1.1

just verified it works fine with 7.10 2010a.

MATLAB Release
MATLAB 7.10 (R2010a)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video