trying to have two figures on the same screen?
Show older comments
Hi, I am writing a program that displays multiple plots in different figures where the user has to select what figure they want to look at. I am trying to have two of these show up split screen. How would I do this. I provided a snip of the code and the what I want t happen to the plots.show up split screen. How would I do this. I provided a snip of the code and the what I want t happen to the plots.
so Basically I would like these two figures to be displayedin figure 9 half and halfAccepted Answer
More Answers (1)
NA
on 26 Aug 2020
%larger figure on the right
figure;
subplot(2,2,1);
subplot(2,2,3);
subplot(2,2,[2 4]);
%larger figure on the left
figure;
subplot(2,2,2);
subplot(2,2,4);
subplot(2,2,[1 3]);
4 Comments
Austin Matuszewski
on 26 Aug 2020
A subplot creates axes in tiled positions.
subplot(m,n,p)
%m = number of rows
%n = number of columns
%p = position of current plot
So in your case, whe you create a subplot(2,2,p) - this simply means the subplot has an overall 'matrix' of 2 rows and 2 columns; the 'p' indicates the position of the current plot within this 'matrix' (counting along the top row, then the second row etc).
In short, the indexes change depending on the size of the subplot, and the positioning of the plots.
Hope that makes sense.
Austin Matuszewski
on 26 Aug 2020
NA
on 26 Aug 2020
Consider this subplot:
figure;
subplot(2,2,1); title('plot 1');
subplot(2,2,2); title('plot 2');
subplot(2,2,3); title('plot 3');
subplot(2,2,4); title('plot 4');
It divides the Figure window into a 2x2 matrix of small axes.
When you concatenate the 1st and 3rd axes the Figure changes accordingly:
figure;
subplot(2,2,[1 3]); title('plot 1');
subplot(2,2,2); title('plot 2');
subplot(2,2,4); title('plot 4');
If you want to add more plots to your subplot, you need to increase the 'm' and/or 'n' value.
subplot(m,n,p)
%m = number of rows
%n = number of columns
%p = position of current plot
For instance, if you want to create a subplot of 6 plots total, you can do this by increasing the number of rows (m) or the number of columns (n).
%increase number of rows
figure;
subplot(3,2,1); title('plot 1');
subplot(3,2,2); title('plot 2');
subplot(3,2,3); title('plot 3');
subplot(3,2,4); title('plot 4');
subplot(3,2,5); title('plot 5');
subplot(3,2,6); title('plot 6');
%increase number of columns
figure;
subplot(2,3,1); title('plot 1');
subplot(2,3,2); title('plot 2');
subplot(2,3,3); title('plot 3');
subplot(2,3,4); title('plot 4');
subplot(2,3,5); title('plot 5');
subplot(2,3,6); title('plot 6');
You can also concatenate the matrix axes to suit your needs; example:
figure;
subplot(2,3,1); title('plot 1');
subplot(2,3,[2 5]); title('plot 2'); %concatentate 2nd and 5th axes
subplot(2,3,[3 6]); title('plot 3'); %concatentate 3rd and 6th axes
subplot(2,3,4); title('plot 4');
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!