我在线仔细搜索了解决方案,但我无法解决问题。
我正在使用Mac OS X High Sierra,最新版本的python(随官方安装程序一起安装)和matplotlib包(使用pip安装)。
我也确信我已经设置了TkAgg'正如许多其他用户所建议的那样,作为后端。让我们谈谈以下示例代码:
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 5, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.show(block=True)
代码在交互模式下工作,并且图表刚刚正确弹出。但是,我发现无论我做什么,或者无论我改变哪部分代码,这都不起作用。 pylab(正如其他人建议的那样)也没有用。例如,如果我使用
运行代码python test.py
它会在没有显示任何内容的情况下退出。 PyCharm也发生了同样的事情。
更新:我刚刚调试了代码,发现matplotlib故意阻止窗口?! 在档案
PYTHON_PATH/lib/python2.7/site-packages/matplotlib/backend_bases.py
第195-196行显示
if cls.mainloop is None:
return
应该是这样,如果我们处于非交互模式,它将返回。当我评论这两行时,它会引发NonGuiException()
。
我担心目前无法解决这个问题?