Subplots with equal "nice" y-axes -- is there a function?
69 次查看(过去 30 天)
显示 更早的评论
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
0 个评论
采纳的回答
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.
0 个评论
更多回答(3 个)
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.
1 个评论
Jorge MARTINEZ
2016-9-16
移动:DGM
2024-11-7,11:35
anyways, Jan, your solution works like a charm... as usual ;)
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
2016-9-16
what about "linkaxes" function?
2 个评论
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Subplots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!