如何获取图形打开的信息?

How to access the information that a figure is open?

我想在 matplotlib 图打开时执行任务,我正在寻找这样的东西:

while "figure is open instruction" True:
    i = 0
    p = 0
    av_p = 0
    for i in range(5):
        if abs(position[0] - 2) <=10**-2
            p = mass * np.sqrt(velocity[0][0]**2 + velocity[0][1]**2)
            av_p = (p+av_p)/i+1
print(av_p)

所以我试图在某个时间段内获取一组数据,一旦时间结束,获取数据的过程就会重新打开。

如果您要做的是更新绘图(实时),我建议您使用 pyqtgraph。特别是查看示例,其中一个显示了如何轻松更新绘图的曲线。

无论如何,要检查 window 是否打开,您可以尝试这样的操作:How to detect that an axis belong to a window that has been closed in matplotlib

# defining on_close event
def on_close(event):
    event.canvas.figure.axes[0].has_been_closed = True

# ploting 
fig = plt.figure()
a = fig.canvas.mpl_connect('close_event', on_close)
ax = fig.add_subplot(111)
ax.has_been_closed = False

ax.plot([1, 2, 3], [2, 4, 6])
plt.show()

if ax.has_been_closed:
    print('closed')

然后你可以使用ax.has_been_closed检查window是否关闭。请注意,您必须至少定义一个轴。