Aligning ytick marks in a yyplot
6 次查看(过去 30 天)
显示 更早的评论
I am currently trying to make a plot with two y axes using plotyy. However, I needed to change the y limits on both axes. After I changed the y limits the y ticks on the right and left no longer line up, which makes the plot look poor when I turn the grid on. I am wondering if there is a way to line up the YTick marks. I would like for them to be aligned the way they are when you first make the plot with plotyy. Thanks
Here is my sample code:
t = 1:100;
y = exp(-(1/100)*(t-50).^2);
rr = -0.1 + 0.2*rand(100,1);
y = y+rr';
c = cumtrapz(y);
[ax] = plotyy(t,y,t,c);
set(ax(1),'YLim',[0 inf])
set(ax(2),'YLim',[0 inf])
set(ax(1),'YTick',0:.1:1)
set(ax(2),'YTick',0:2:20)
grid on
0 个评论
采纳的回答
Walter Roberson
2015-11-6
No. Setting the YLim upper limit to infinity has no documented meaning, and in practice has subtle interactions with "axis tight" (or not) that make it difficult to say what the "right" solution is.
The calculations that you would need to do in order to align the ticks depend upon having finite ylim for both axes.
3 个评论
Walter Roberson
2015-11-6
In that case,
yt1 = get(ax(1), 'YTick');
yL1 = get(ax(1), 'YLim');
t1ratio = (yt1 - yL1(1))./(yL1(2)-yL1(1));
yL2 = get(ax(2), 'YLim');
yt2 = t1ratio .* (yL2(2)-yL2(1)) + yL2(1);
set(ax(2), 'YTick', yt2)
This relies on the YLim being finite (as otherwise the range is infinite and you end up with 0 for the proportional ratios.)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Two y-axis 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!