有没有办法让matplotlib放宽绘图数据的缩放?

4 投票
1 回答
2133 浏览
提问于 2025-04-16 18:55

我有一些数据被绘制出来了,每个子图都有一些限制:气动角度与限制 两个轴都有这些限制,但因为第二个图的数据刚好在限制范围内,所以这些限制就成了y轴的边界,导致它们看不见。

为了让这些限制变得可见,我可以这样做:

axes.set_ylim(1.1*lowerLimit,1.1*upperLimit)

这里的 lowerLimitupperLimit 是用来生成限制的原始数据。不过我在想,matplotlib有没有什么方法可以让它在自动设置限制时不要那么严格。现在的解决方案也有个问题,就是如果数据超出了边界,就可能会超出限制,所以我在寻找一个可以补充 set_ylim() 的方法,能告诉我当前的限制是什么,类似于 get_ylim(),但在文档中似乎没有这个功能。

谢谢你的帮助。

1 个回答

5

关于你请求的一个可以改变y轴范围的函数,这个能满足你的需求吗?

def larger_axlim( axlim ):
    """ argument axlim expects 2-tuple 
        returns slightly larger 2-tuple """
    axmin,axmax = axlim
    axrng = axmax - axmin
    new_min = axmin - 0.1 * axrng
    new_max = axmax + 0.1 * axrng
    return new_min,new_max
...
ax.set_ylim( larger_axlim( ax.get_ylim() ) )
...

文档链接:get_ylim()

撰写回答