how to eliminate the blank between subplot ?

14 views (last 30 days)
what i mean is to make subplot box close to each other

Accepted Answer

Michael Haderlein
Michael Haderlein on 6 May 2015
Use the set command and the position property. Here is one example with zero spacing between the 2x2 axes and a 0.1 frame around them:
figure, subplot(2,2,1),plot(rand(3)),set(gca,'xtick',[],'ytick',[])
subplot(2,2,2),plot(rand(3)),set(gca,'xtick',[],'ytick',[])
subplot(2,2,3),plot(rand(3)),set(gca,'xtick',[],'ytick',[])
subplot(2,2,4),plot(rand(3)),set(gca,'xtick',[],'ytick',[])
ha=get(gcf,'children');
set(ha(1),'position',[.5 .1 .4 .4])
set(ha(2),'position',[.1 .1 .4 .4])
set(ha(3),'position',[.5 .5 .4 .4])
set(ha(4),'position',[.1 .5 .4 .4])
Instead of getting the axes handles as figure children, you could also save them during creation as subplot.

More Answers (1)

Walter Roberson
Walter Roberson on 6 May 2015
create all subplots first before trying to move them around. If you try to move them around before they are all created, chances are good that you will accidentally end up with subplot() deleting some of the subplots.
Once all the subplots are created, set() the Position property of their handles. For example,
for K = 1 : 6
h(K) = subplot(1,6,K);
end
set(h(2), 'Position', [.... some new location ....]);

Community Treasure Hunt

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

Start Hunting!