Subplot with odd number of plots

230 visualizaciones (últimos 30 días)
Davide
Davide el 27 de Abr. de 2016
Comentada: Hemang Vadgama el 29 de Sept. de 2021
I want a figure with five subplots. Here and there I have found this solution:
subplot(3,2,1), plot(...)
subplot(3,2,2), plot(...)
subplot(3,2,3), plot(...)
subplot(3,2,4), plot(...)
subplot(3,2,[5,6]), plot(...)
It does not work for me because it creates a very large plot at the bottom of the figure, while I would like to have all the five plots of the same dimension, but with the fifth one at the bottom-center of the figure. Any suggestion?

Respuestas (4)

Benyamin Nemati
Benyamin Nemati el 26 de Sept. de 2021
try this
figure
hold on
subplot(3,2,1)
subplot(3,2,2)
subplot(3,2,3)
subplot(3,2,4)
subplot(3,2,5.5)
  5 comentarios
Benyamin Nemati
Benyamin Nemati el 28 de Sept. de 2021
You're welcome Amal.
Hemang Vadgama
Hemang Vadgama el 29 de Sept. de 2021
Thanks

Iniciar sesión para comentar.


Stephen23
Stephen23 el 27 de Abr. de 2016
Editada: Stephen23 el 27 de Abr. de 2016
Here is some simple code that adjusts the position without using any hardcoded values: it centers the last axes based on the positions of the first two axes (and is easy to adjust to more columns):
h(1) = subplot(3,2,1);
h(2) = subplot(3,2,2);
h(3) = subplot(3,2,3);
h(4) = subplot(3,2,4);
h(5) = subplot(3,2,5); % the last (odd) axes
pos = get(h,'Position');
new = mean(cellfun(@(v)v(1),pos(1:2)));
set(h(5),'Position',[new,pos{end}(2:end)])
and it creates this figure:
You could also experiment with adjusting the OutsidePosition axes property.
  3 comentarios
VIVEKANANDA HAZRA
VIVEKANANDA HAZRA el 15 de Jun. de 2021
handle
Amal AbdelGawad
Amal AbdelGawad el 28 de Sept. de 2021
Thank you.

Iniciar sesión para comentar.


Steven Lord
Steven Lord el 26 de Mzo. de 2021
Draw out a 3-by-4 grid of subplot axes. The first two subplots use positions 1-2 and 3-4. The next two use 5-6 and 7-8. The final one uses 10-11. I added two additional subplot axes to show you which spaces are not used.
subplot(3, 4, [1 2])
title('First')
subplot(3, 4, [3 4])
title('Second')
subplot(3, 4, [5 6])
title('Third')
subplot(3, 4, [7 8])
title('Fourth')
subplot(3, 4, [10 11])
title('Fifth')
subplot(3, 4, 9, 'Color', 'r')
title('unused')
subplot(3, 4, 12, 'Color', 'r')
title('unused')

KSSV
KSSV el 27 de Abr. de 2016
subplot(3,2,1)
subplot(3,2,2)
subplot(3,2,3)
subplot(3,2,4)
positionVector = [0.3, 0.1, 0.3, 0.2];
subplot('Position',positionVector2)
Change positionVector accordingly......
  1 comentario
Amal AbdelGawad
Amal AbdelGawad el 25 de Mzo. de 2021
Could you please tell me what do you mean by "Change positionVector accordingly"?
Because I tried your code but it didn't work.

Iniciar sesión para comentar.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by