在Matlab中使用双轴(double axis used in matlab)

2019-10-28 21:05发布

我使用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')

搜索,网上后,我发现,关闭箱就能解决问题了。 但问题是把盒子关将区分顶部水平线也不见了。 那是无论如何删除多余的规模,并保持架? 谢谢。

Answer 1:

我不认为有一个简单的方法做你想做的。 如果您关闭对话框(要获得右侧摆脱蓝色的刻度),然后顶部水平线将消失:

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

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

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

或者更一般地说:

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


Answer 2:

这是可能的,并不是非常困难,这里是根据你的测试代码的说明示例图

我所做的是增加第三轴 (在这种情况下,我通过拍摄快捷键来实现这一点-我叫plotyy从而在第一轴额外的蓝线与绿线额外的第二轴的两倍)。

这个想法是把边界框关闭所述第一和第二轴,然后将其打开第三。 这导致在顶轴给你的左纵轴,第二右纵轴,第三顶部水平轴。



文章来源: double axis used in matlab
标签: matlab axes