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

조회 수: 52 (최근 30일)
abdur rauf
abdur rauf 2018년 8월 14일
댓글: Oluwafemi Ojo 2020년 3월 25일
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

채택된 답변

jonas
jonas 2018년 8월 14일
편집: Adam Danz 2019년 12월 18일
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
abdur rauf
abdur rauf 2018년 8월 14일
@ jonas,
Thank you.
Oluwafemi Ojo
Oluwafemi Ojo 2020년 3월 25일
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?

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Andy Su
Andy Su 2020년 1월 30일
And for a common y label for a right hand y axis too please?

카테고리

Help CenterFile Exchange에서 2-D and 3-D Plots에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by