필터 지우기
필터 지우기

Subplots with equal "nice" y-axes -- is there a function?

조회 수: 65 (최근 30일)
Douglas Anderson
Douglas Anderson 2012년 3월 13일
댓글: David Bennetts 2020년 6월 7일
Hello,
I thought I had seen a function somewhere that would modify subplots so that each of the plots would have the same scale (i.e., ylim) and all of them fit nicely. Kind of like "auto" for the subplot with the highest amplitude applied to all of the subplots.
Is there such a function, or option for an existing function?
Thanks

채택된 답변

Tom
Tom 2012년 3월 13일
Once you've finished creating all the subplots (and you have the handles), you can set all of them at once by using :
set(AX_handles,'YLim',[A B])
Where AX_handles is a vector of axes handles, one for each subplot- for example:
for n=1:10
AX(n) = subplot(5,2,n)
end
A and B are your lower and upper limits. Finding the overall max will vary a bit depending on how your data is structed but it shouldn't be too hard.

추가 답변 (4개)

Jan
Jan 2012년 3월 13일
allYLim = get(AxesHandle, {'YLim'});
allYLim = cat(2, allYLim{:});
set(AxesHandle, 'YLim', [min(allYLim), max(allYLim)]);
The curly braces around 'YLim' in the get command are needed, if AxesHandle is a scalar.

Brett Davenport
Brett Davenport 2018년 4월 8일
편집: Brett Davenport 2018년 4월 8일
subplot(1,2,1);plot(t,x);
y1=ylim %gets current limits
subplot(1,2,2);plot(t2,x2);
ylim(y1) %sets limits to that of first subplot

Jorge MARTINEZ
Jorge MARTINEZ 2016년 9월 16일
what about "linkaxes" function?
  댓글 수: 2
Brett Davenport
Brett Davenport 2018년 4월 8일
Perfect
David Bennetts
David Bennetts 2020년 6월 7일
Worked perfectly for me too. I had to add it add the end of the script after all of the subplot calls.

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


Jorge MARTINEZ
Jorge MARTINEZ 2016년 9월 16일
anyways, Jan, your solution works like a charm... as usual ;)

카테고리

Help CenterFile Exchange에서 Subplots에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by