MATLAB Answers

Subplot spacing

26 views (last 30 days)
Aadil
Aadil on 23 Apr 2012
Following on from my last question, Does anyone know how to decrease the spacing between multiple subplots?
I have tried removing Xlabels but it doesn't seem to make any difference
Thanks

  0 Comments

Sign in to comment.

Accepted Answer

Daniel Shub
Daniel Shub on 23 Apr 2012
From an enhancement request I put in to TMW 2 years ago: "I think that subplot puts too much space between the axes as well as between the axes and the edge of the figure. I would like to be able to control this. Looking at the code of subplot.m the spacing seems to depend on a field of the application data called SubplotDefaultAxesLocation and the hard coded values for inset on line 130. I believe if the hard coded inset was changed to a field of the application data, then a user could modify the spacing between subplots. Further, the defaults for both properties should become modifiable with something like set(0, 'DefaultAxesSubplot..."
As an immediate workaround you should be able to copy subplot.m to mysubplot.m and change the line which sets the variable "inset" to a value that you like and then change the DefaultAxesPosition globally
set(0, 'DefaultAxesPosition', ...
or locally
set(gcf, 'DefaultAxesPosition', ...

  2 Comments

Aadil
Aadil on 23 Apr 2012
I tried the set(gcf.... method, it allowed me to move around position and size of plots, which helped as the borders were taking up a lot of space. But it doesn't seem to affect the spacing between the plots, there still seems to be a constant factor of space between the plots proportional to the plot size you set.
Daniel Shub
Daniel Shub on 23 Apr 2012
You need to copy subplot.m to mysubplot.m and then modify line 130 (or so) of mysubplot.m. The line you need to modify is where the inset variable is set.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!