View License

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

» Watch video

Highlights from

4.9 | 20 ratings Rate this file 146 Downloads (last 30 days) File Size: 122 KB File ID: #39664 Version: 1.2
image thumbnail




28 Dec 2012 (Updated )

Asymmetric subplots with variable inner gaps and outer margins.

| Watch this File

File Information

subtightplot is a merger of Pekka Kumpulainen's tight_subplot and Nikolay S.'s subplot_tight. It extends the former, which supports asymmetric subplots, to allow for variable margins in addition to gaps, as in the latter.

Existing scripts that currently call Matlab's builtin subplot can be adapted with minimal modification by issuing the following command upfront:
  subplot = @(m,n,p) subtightplot(m,n,p,opt{:});
where opt = {gap, width_h, width_w} describes the inner and outer spacings. The screenshot attached shows demo results for examples modified from the subplot documentation.

For axes ticks and labels and locations, see Matlab's axes properties documentation, or try Eran Ofek's subplot1 for a more guided approach.

If you prefer a post-processing solution, see Richard Crozier's tightfig or Aditya's spaceplots.

Alon Geva's subplotplus is interesting for making complicated subplot arrangements; apparently gaps and margins are fixed. Aslak Grinsted's subaxis is based on a richer, more expressive HTML jargon. Joris Kampman's subplot_grid is a colossal 3500+ line object-based implementation. These high-end alternatives are a departure from the built-in subplot's calling syntax, though.

For an overview, please see the Dec 21st, 2012 post on the File Exchange Pick of the Week Blog, titled "Figure margins, subplot spacings, and moreā€¦".


An Improved Subplot Function, Tightfig, Subplotplus() Enhanced Layout Matlab Subplot Function, Spaceplots, Tight Subplot(Nh, Nw, Gap, Marg H, Marg W), Controllable Tight Subplot, Subaxis Subplot, and Subplot Grid inspired this file.

This file inspired Dicom Operator Esme Process, Plot Objectives3 Dm, Natural Gas Storage Valuation, Smplot For Small Multiples, Plot Objectives M, and Gramm (Complete Data Visualization Toolbox, Ggplot2/R Like).

Required Products MATLAB
MATLAB release MATLAB 7.13 (R2011b)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (23)
10 Feb 2017 w rq

w rq (view profile)


25 Jan 2017 Vasily Vasilyev

02 Dec 2016 Troy

Troy (view profile)

02 Dec 2016 Troy

Troy (view profile)

26 Oct 2016 JWall

JWall (view profile)

Great, thank you!!!

10 Oct 2016 Al

Al (view profile)

just works

23 Jun 2016 Shaun

Shaun (view profile)

20 Jun 2016 Alberto Scrofani

Finally a script very easy to use, basically use the same syntax of subplot!!!

03 Sep 2015 Felipe G. Nievinski

@Erik: yes, it's possible to pass additional input arguments (after the 6 first ones), e.g.:
figure, subtightplot(3,2,1,[],[],[],'Color','b')
Any property-value pairs are passed on to subplot; the 'replace' input is not supported.

Comment only
31 Aug 2015 Abhinav Gupta

Thanks a ton!

Very helpful and easy to use.

25 Jun 2015 Mario CASTRO GAMA

02 May 2015 Yuan Zhou

Very useful. Save me a lot of time. Thanks.

Comment only
02 May 2015 Yuan Zhou

06 Feb 2015 Erik

Erik (view profile)

Works great with the suggested function handle. Is it possible to pass more inputs to subplot (see subplot documentation)? I get an error when I try this:

subplot = @(m,n,p,varargin) subtightplot(m,n,p,[],[],[],varargin{:});

and then I get an error if I use e.g. subplot(m,n,p,'replace'). Is it possible to support the various subplot syntaxes in this way? E.g. write subtightplot in such manner that it works like this:

subplot = @(m,n,p,varargin) subtightplot(m,n,p,varargin{:},gap, marg_h, marg_w);

If you then use the same input argument checking as subplot itself uses, you could basically rewrite subplot with the support for gap, marg_h and marg_w.

08 Sep 2014 Martin

Martin (view profile)

thank you :-)

13 Aug 2014 schwarzkater

Excellent! Thanks a lot

24 Jun 2014 Anton Semechko

Anton Semechko (view profile)

06 May 2014 Felipe G. Nievinski

@Tamanaco: clear subplot;

Comment only
06 May 2014 Tamanaco

Hi Felipe! How do you revert the
subplot = @(m,n,p) subtightplot(m,n,p,opt{:});
assignment back to the original Matlab subplot function? Regards and thanks!

10 Jan 2014 Joshua Carmichael

Excellent utility, and works well with export_fig. I implement it with all of my tools.

02 Nov 2013 Julian Gallego

08 May 2013 K Y

K Y (view profile)

really useful for me
many thanks

15 Jan 2013 Alexander Stepanov

Very useful. Thought of writing it myself before found this submission.

02 Jan 2013 1.1

acknowledged one more FX submission.

08 Jan 2013 1.2

acknowledging another FX submission.

Contact us