Common X label for 2x2 subplots without using for loop?

51 vues (au cours des 30 derniers jours)
abdur rauf
abdur rauf le 14 Août 2018
Commenté : Oluwafemi Ojo le 25 Mar 2020
Hello everyone,
I have created 4 subplots with 2 rows and 2 columns. The handles for subplots are h1, h2, h3, and h4. I want to use common X and Y-label for all subplots. For Y-label, I used the following code:
p1=get(h1,'position');
p2=get(h2,'position');
p3=get(h3,'position');
p4=get(h4,'position');
height=p1(2)+p1(4)-p4(2);
h5=axes('position',[p3(1) p3(2) p3(3) height],'visible','off');
I got the Y-label at the desired location. Is there any way to give common X-label to these subplots?
Any help will be appreciated.
Thanks

Réponse acceptée

jonas
jonas le 14 Août 2018
Modifié(e) : Adam Danz le 18 Déc 2019
Here is how you can set a single centered x- and y-label on a 2x2 plot.
h1=subplot(2,2,1);
h2=subplot(2,2,2);
h3=subplot(2,2,3);
h4=subplot(2,2,4);
p1=get(h1,'position');
p2=get(h2,'position');
p3=get(h3,'position');
p4=get(h4,'position');
height=p1(2)+p1(4)-p4(2);
width=p4(1)+p4(3)-p3(1);
h5=axes('position',[p3(1) p3(2) width height],'visible','off');
h5.XLabel.Visible='on'
h5.YLabel.Visible='on'
axes(h5)
ylabel('test')
xlabel('test')
...and as a bonus, here is how you can set the same xlabel on all plots, without a for loop
h1=subplot(1,2,1)
h2=subplot(1,2,2)
h=findobj(gcf,'type','axes')
set([h.XLabel],'string','XLabel')
  2 commentaires
abdur rauf
abdur rauf le 14 Août 2018
@ jonas,
Thank you.
Oluwafemi Ojo
Oluwafemi Ojo le 25 Mar 2020
Please, how do I do this for a 1 by 2 plot especially when I'm using tight subplot. Also, how does setting the height and width work?

Connectez-vous pour commenter.

Plus de réponses (1)

Andy Su
Andy Su le 30 Jan 2020
And for a common y label for a right hand y axis too please?

Catégories

En savoir plus sur 2-D and 3-D Plots dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by