自动关闭Matplotlib图形窗口/图片浏览器

6
所以我有一个小问题,需要一个答案。 我用matplotlib创建了一个图,显示后想关闭它。 当然,我查阅了一些文档(例如:https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.close.html),访问了很多论坛,比如:matplotlib close does not close the window,但是我的代码对我没有用。
我使用了plt.ion()函数,但是当我尝试时,图形没有出现,我只看到了一个空白的窗口。 之后,我使用了plt.show(block = False),但我再次得到了一个空白的窗口。
您可以看到上面的代码:
#Showing

plt.ion()
plt.show(block = False)

time.sleep(10)

plt.close("all")

如您所见,有一段延迟,我希望能够看到一个10秒的图表然后关闭它。

请随意评论,我会很感激,谢谢。

1个回答

13

不要使用 time.sleep()函数,使用plt.pause()函数。


详细说明: 首先,你需要使用plt.show(block=False)函数使图形不被阻塞从而执行下一条命令。

其次,第二条命令即plt.pause(3)会暂停图形3秒钟,然后执行下一行/下一条命令。

最后,最后一行/命令,plt.close("all")会自动关闭图形。


这是一个脚本(.py),用于绘制imshow图形,并在3秒钟后自动关闭它。

import matplotlib.pyplot as plt
import numpy as np

X = np.random.rand(10,10)

plt.imshow(X)

plt.show(block=False)
plt.pause(3) # 3 seconds, I use 1 usually
plt.close("all")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接