我在matlab中使用plotyy来绘制同一图中的两个数据集。左轴和右轴的范围不同。但我发现在右轴上,似乎显示了两组不同的比例。我认为其中一个真的来自左轴。
t=-1:0.02:1;
y=sin(t);
y1=2*sech(t);
[AX, H] =plotyy(t, y, t, y1);
ylim(AX(2), [0 3.25]);
set(AX(2), 'YTickMode', 'auto')
在网上搜索后,我发现关掉包装盒也可以解决问题。但问题是关闭盒子会使顶部水平线也消失。无论如何要删除额外的比例并保持框架?感谢。
答案 0 :(得分:2)
这是可能的,而且非常困难,这是一个基于测试代码的示例性示例图
我所做的是添加一个第三轴(在这种情况下,我通过快捷方式实现了这一点 - 我将plotyy称为两次,在第一个轴上产生了额外的蓝线,另外还有一个额外的蓝线第二轴带绿线)。
这个想法是关闭第一个和第二个轴的边界框,然后为第三个轴打开它。这导致顶轴给你左垂直轴,第二轴给你垂直轴,第三轴给你顶部水平轴。
答案 1 :(得分:0)
我认为没有简单的方法可以做你想做的事。如果您关闭该框(以摆脱右侧的蓝色刻度线),那么顶部水平线将消失:
set(AX(1), 'Box','off')
如果你想要,你可以用以下方式重新画线:
line([-1, 1], [1, 1])
或更一般地说:
lims = get(AX(1),{'XLim','YLim'});
line(lims{1}, lims{2}([2 2]))