首页 文章

matlab中使用的双轴

提问于
浏览
0

我在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')

在线搜索后,我发现关闭盒子也可以解决问题 . 但问题是关闭盒子会使顶部水平线也消失 . 无论如何要删除额外的比例并保持框架?谢谢 .

2 回答

  • 0

    我不认为有一种简单的方法可以做你想做的事 . 如果您关闭该框(以摆脱右侧的蓝色刻度线),则顶部水平线将消失:

    set(AX(1), 'Box','off')
    

    如果你想要你可以重新绘制线条:

    line([-1, 1], [1, 1])
    

    或者更一般地说:

    lims = get(AX(1),{'XLim','YLim'});
    line(lims{1}, lims{2}([2 2]))
    
  • 2

    这是可能的,而不是非常困难,这是一个基于您的测试代码的说明性示例图
    a figure based on your example

    我所做的是添加一个 third axis (在这种情况下,我通过快捷方式实现了这一点 - 我将plotyy称为两次,导致第一个轴上有一条额外的蓝线,另一条带有绿线的额外第二个轴) .

    我们的想法是关闭第一个和第二个轴的边界框,然后为第三个轴打开它 . 这导致顶轴给出左垂直轴,第二轴给出右垂直轴,第三轴给出顶部水平轴 .

相关问题