# How to plot 17 subplots?

21 views (last 30 days)

Show older comments

##### 2 Comments

Adam
on 30 Jun 2017

### Accepted Answer

John BG
on 29 Jun 2017

Hi Ibro

let be N the amount of images, then the most compact, square-like lay-out is achieved with

L=ceil(N^.5)

for k=1:1:N

subplot(L,L,k)

plot(..) or stem(..) or any other plot type

end

if you find this answer useful would you please be so kind to consider marking my answer as Accepted Answer?

To any other reader, if you find this answer useful please consider clicking on the thumbs-up vote link

thanks in advance

John BG

##### 1 Comment

John BG
on 30 Jun 2017

Ibro

the thing with subplot and a large amount if images is that the area for each image is reduced, therefore losing visual resolution.

One way around would be to plot 17 separate figures

for k=1:1:17

hf=figure(k)

plot(..) or stem(..) or any other plot type

hf.Position=[left down width height]

end

Usually top left corner of the screen is [0 0].

capturing the figure handle you can save further space, away from things not needed, to give more space for the images

hf=figure

hf.ToolBar='none'

Another way would be to group the figures in groups of 4, reducing the amount of needed figures to

N=17

for k=1:1:floor(N/4)

figure(k)

for s=1:1:4

subplot(2,2,s)

plot(..) or stem(..) or any other plot type

end

end

for k=(N-floor(N/4)):1:N

figure(k)

for s=1:1:(N-floor(N/4))

subplot(2,2,s)

plot(..) or stem(..) or any other plot type

end

end

regards

John BG

### More Answers (1)

Jan
on 30 Jun 2017

Edited: Jan
on 30 Jun 2017

This adds a new row only if required:

N = 17;

figure;

nS = sqrt(N);

nCol = ceil(nS);

nRow = nCol - (nCol * nCol - N > nCol - 1);

for k = 1:N

subplot(nRow, nCol, k);

plot(1:10, rand(1, 10));

end

Comparison to the pure square solution: Saving an empty row helps to get the "most compact form", which is not a 5x5 arrangement:

See also:

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!