How to reduce the borders around subplots in matlab? [duplicate]

Solution 1:

The subaxis function on the File Exchange allows you to specify margins for subplots.

Example usage:

t = 0:0.001:2*pi+0.001;
figure(2);
for i = 1 : 25;
    subaxis(5,5,i, 'Spacing', 0.03, 'Padding', 0, 'Margin', 0);
    plot(t, sin(i*t));
    axis tight
    axis off
end

enter image description here

Solution 2:

You can position them yourself (or programatically) using

subplot('Position',[left bottom width height]);

By default, the coordinates are normalized. So a position of [0.1 0.1 0.5 0.5] will start at 10% of the way in from the lower left corner, and will have a width equal to half the figure width, and a height equal to half the figure height.

See the accepted answer for a built-in solution to margins and padding.

Solution 3:

Try to reduce the default values in the hidden axes LooseInsets property, as described in http://UndocumentedMatlab.com/blog/axes-looseinset-property/

For example:

set(gca, 'LooseInset', get(gca,'TightInset'))