如何将 Python 3.4 matplotlib 置于非交互模式?

phl*_*max 5 python matplotlib

考虑以下简单代码:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0,np.pi,0.001)
f = np.sin(x)

plt.figure(figsize=(10,10))
plt.plot(x,f)
plt.ioff()
plt.show()
plt.savefig('Sine')
Run Code Online (Sandbox Code Playgroud)

在这里,我希望 Python关闭图形窗口保存图形。当然,这不是很有用,但在原始代码中,我想以图形方式操作图形,然后保存更改。

上面的代码在我的上一个 Python 版本(Debian 2.? 版本)上运行良好,但是由于我使用 Python 3.4 更改为 SuSe 13.2,它只是不停地运行整个代码。

在这个主题上确实存在其他线程,比如Matplotlib python show() 立即返回,但这些解决方案对我不起作用 - 我尝试matplotlib.interactive(False)为 matplotlib 选择各种不同的后端(目前我正在使用'QT4Agg')。

Tej*_*sad 6

请使用Agg后台。它是非交互式的,它解决了这个问题。要设置 matplotlib 后端,您需要调用use如下所示的方法。

import matplotlib
matplotlib.use('Agg')
Run Code Online (Sandbox Code Playgroud)

  • 可能不再是最新的:“用户警告:Matplotlib 当前正在使用 agg,它是一个非 GUI 后端,因此无法显示该图。” (4认同)