【问题标题】:double axis used in matlabmatlab中使用的双轴
【发布时间】:2012-08-23 15:11:31
【问题描述】:

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

在网上查了一下,发现关掉盒子也能解决问题。但问题是关闭盒子会导致顶部水平线也消失。无论如何都要去除多余的刻度并保留框架吗?谢谢。

【问题讨论】:

    标签: matlab axes


    【解决方案1】:

    这是可能的,而且不是很困难,这是一个基于您的测试代码的说明性示例图

    我所做的是添加一个 第三轴(在这种情况下,我通过走捷径来实现这一点 - 我调用 plotyy 两次导致第一个轴上有一条额外的蓝线和一条额外的绿线的第二个轴)。

    这个想法是关闭第一个和第二个轴的边界框,然后打开第三个轴。这导致顶部轴为您提供左侧垂直轴,第二个为右侧垂直轴,第三个为顶部水平轴。

    【讨论】:

      【解决方案2】:

      我认为没有简单的方法可以做你想做的事。如果您关闭该框(以消除右侧的蓝色勾号),则顶部水平线将消失:

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

      如果你愿意,你可以重新画线:

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

      或更笼统地说:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-26
        • 1970-01-01
        • 1970-01-01
        • 2013-08-01
        相关资源
        最近更新 更多