Python 如何从Matplotlib中的图形或轴对象获取打印数据的限制?

Python 如何从Matplotlib中的图形或轴对象获取打印数据的限制?,python,matplotlib,Python,Matplotlib,我试图确定matplotlib轴或图形上数据点的限制,但我找不到任何方法。 我要举个例子,但原始图像要复杂得多: 通过使用Axes.get_xbound()或Axes.get_xlim()我得到(-265.66000.0),但我想得到(05570) 我这样问是因为在这部分代码中,我只能访问Figure或Axis对象。 大概是这样的: def plot_detail(): fig, ax = plt.subplots(1) # Code # ... return

我试图确定matplotlib轴或图形上数据点的限制,但我找不到任何方法。 我要举个例子,但原始图像要复杂得多:

通过使用Axes.get_xbound()或Axes.get_xlim()我得到(-265.66000.0),但我想得到(05570)

我这样问是因为在这部分代码中,我只能访问Figure或Axis对象。 大概是这样的:

def plot_detail():
    fig, ax = plt.subplots(1)
    # Code
    # ...
    return fig,ax

def main():
    fig,ax = plot_detail()
    print(ax.get_xbound())
    print(ax.get_xlim())
    # Here I would need the data limits
    # Any Idea how?

首先,作为一个旁注,在代码中只有绘图(图形和轴)的位置需要数据,在我看来,在设计/编写代码时,至少有一个不是很好的设计决策。如果我能看到整个代码,我可能会推荐一个更好的方法。也就是说,有时我们没有预见到代码的所有需求是可以理解的,然后有时(取决于程序的大小)可能不值得为重新设计/重写部分代码而付出努力

因此,为了获得数据(为了知道数据本身的x极限,而不仅仅是曲线图的x极限)。。。您可以通过从Axis对象获取
lines.Line2D
对象来完成此操作

即使看起来您正在打印条形图,其中仍应包含line2D对象。该对象包含xy数据

xdata = ax.get_lines()[0].get_xdata()
print('xdata limits:',xdata[0],xdata[-1])

HTH.

您可能可以直接从数据中更好地确定这一点——很可能这是一个糟糕的设计,但在这里不可能重现。我在另一个复杂的绘图(使用不同的模块)上有一种绘图。因此,首先我调用一个函数,返回背景图(图,ax),然后在其上绘制其余信息。