4

我注意到当我运行时:

import pylab as pl
pl.ion()
# Plot something
pl.show()
pl.close()

最后一条语句并未完全关闭该图。图形变暗,内容消失,但图形一直在屏幕上,直到我退出 IPython,如下所示

                      在此处输入图像描述

我正在使用 Anaconda 发行版在 Linux 64 位上使用最新稳定版本的 matplotlib ( 1.3.1 ),并使用ssh -X.

我使用的后端如下:

backend : QT4Agg
backend.qt4 : PySide
4

2 回答 2

5

您必须指定要关闭的数字。如果您想关闭所有这些:

pl.close('all')

此外,还有一种方法可以清除但不关闭图形:

pl.clf()

此外,从另一个 SO 问题如下所示:

请记住,这plt.show()是一个阻塞函数,因此在您上面使用的示例代码中,plt.close()在窗口关闭之前不会执行,这使得它变得多余。

您可以plt.ion()在代码的开头使用使其成为非阻塞的,尽管这有其他含义。

于 2013-12-05T14:17:17.360 回答
0

您还可以在绘图后使用以下行

#Your Plotting function
plt.waitforbuttonpress(0) 
plt.close(fig)

plt.waitforbuttonpress(0) 等待直到给出用户输入(按键)。之后,它将正确关闭 matplotlib 窗口。指定要关闭的图形非常重要。

于 2021-10-29T20:34:30.190 回答