Help with making square and symmetric subplots
8 views (last 30 days)
Show older comments
Dear all,
I am trying to plot 6 graphs in a single plot using subplot function. I would like them to look in a square shape with same axes lengths. However, this is what I get (see attached figure). I have not made any arrangements in my code on subplots.
The code:
figure(3)
subplot(6,2,1,'align');
title(['Episode: ',int2str(i),' epsilon: ',num2str(epsilon)]);
plot(xpoints,ypoints,'Color',[0,0.7,0.9]);
pbaspect([2 2 1]);
xlabel('r');
ylabel('x');
drawnow
subplot(6,2,2,'align');
plot(xpoints,zpoints, 'Color','r');
pbaspect([1 1 1]);
xlabel('r');
ylabel('y');
drawnow
subplot(6,2,3,'align');
plot(xpoints,lpoints, 'Color','r');
pbaspect([1 1 1]);
xlabel('r');
ylabel('z');
drawnow
subplot(6,2,4,'align');
plot(xpoints,convpoints, 'Color','r');
pbaspect([1 1 1]);
xlabel('r');
ylabel('m');
drawnow
subplot(6,2,5,'align');
plot(xpoints,explore, 'Color','b');
pbaspect([1 1 1]);
xlabel(r');
ylabel('n');
drawnow
subplot(6,2,6,'align');
plot(xpoints,gpoints, 'Color','r');
pbaspect([1 1 1]);
xlabel('r');
ylabel('k');
drawnow
Really appreciate it if someone can help with this.
Kind Regards,
Kyana
0 Comments
Accepted Answer
Ameer Hamza
on 26 Apr 2018
Try the following code, you can use the Position property of each axis to control its position, width, and height. More Information here.
subplot(321)
subplot(322)
subplot(323)
subplot(324)
subplot(325)
subplot(326)
f = gcf;
f.Units = 'pixels';
f.Position = [100 100 700 700];
for i=f.Children'
i.Position(3:4) = 0.25;
end
You must note that aspect ratio also depends on resizing of the figure window.
3 Comments
Ameer Hamza
on 27 Apr 2018
Try these settings,
f = gcf;
ax = f.Children;
f.Units = 'pixels';
f.Position = [100 100 700 700];
for i=1:length(ax)
if(mod(i, 2) == 1)
ax(i).Position(1:2) = [0.6 0.1+floor((i-1)/2)*0.3];
else
ax(i).Position(1:2) = [0.1 0.1+floor((i-1)/2)*0.3];
end
ax(i).Position(3:4) = 0.23;
end
You may need to experiment with ax(i).Position values because end result also depends on your screen resolution. Your figure looks like this on my screen after these settings.
More Answers (0)
See Also
Categories
Find more on Subplots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!