Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
matplotlib崩溃Python_Python_Matplotlib - Fatal编程技术网

matplotlib崩溃Python

matplotlib崩溃Python,python,matplotlib,Python,Matplotlib,我不熟悉Python和matplotlib。我编写的一个简单脚本正在崩溃,我能够用以下代码重现崩溃: import matplotlib.pyplot as plt plt.figure(1) plt.figure(2) #plt.show() 错误是python.exe已停止工作。如果我取消对plt.show()的注释,它仍然会崩溃,这取决于我关闭绘图的顺序(如果先关闭2,则不会崩溃,如果先关闭1,则崩溃)。我使用的是Windows7和Python3.4,我从www.lfd.uci.edu/

我不熟悉Python和matplotlib。我编写的一个简单脚本正在崩溃,我能够用以下代码重现崩溃:

import matplotlib.pyplot as plt
plt.figure(1)
plt.figure(2)
#plt.show()

错误是python.exe已停止工作。如果我取消对plt.show()的注释,它仍然会崩溃,这取决于我关闭绘图的顺序(如果先关闭2,则不会崩溃,如果先关闭1,则崩溃)。我使用的是Windows7和Python3.4,我从www.lfd.uci.edu/~gohlke/pythonlibs/安装了各个模块。我是否有配置不正确的地方,或者对如何使用matplotlib有误解?

这可能是Python3.x的问题

我已经在我的windows机器上试用过Python2.7,效果非常好

您可以将python降级到2.7,或者如果觉得为时已晚,为什么不尝试调用close()呢


当我更新到Python3.4时,OSX中也有类似的问题。IDLE也崩溃了,有一个警告告诉我版本不稳定


我通过按照提示操作并更新Tcl/Tk(8.5.9)-,解决了这个问题。

您需要显式设置TkAgg后端。通过以下代码,问题得以解决

import matplotlib
matplotlib.use("TkAgg")
from matplotlib import pyplot as plt

请注意,在导入pyplot后设置TkAgg后端也不起作用;它也崩溃了。在导入pyplot之前,您需要设置它。

我遇到了这个问题,我认为是代码中的某行代码导致了这个错误,但实际上,导入matplotlib.pyplot的行为正在扼杀我的程序。我首先在详细模式下运行解决了这个问题:

python-v[programname].py

这显示导入程序在崩溃之前执行的最后一个操作。对我来说,最后一行是:

导入“PyQt5”


这向我表明,依赖库PyQt5导致了问题,因此我运行了
pip install PyQt5
,神奇地一切都开始工作了。

对于macOS,请确保

~/.matplotlib/matplotlibrc包含:

backend: MacOSX
除非您特别想要,否则您不需要其他后端。或者,您也可以这样做:

import matplotlib
matplotlib.use("MacOSX")

尽管我还没有测试过。

您是在Python解释器中以交互方式输入它,还是将其作为脚本运行?您使用的是哪种版本的Python和Matplotlib以及哪种环境?我将其作为脚本运行在PyCharm 3.4.1中,其中包含Python 3.4.0和Matplotlib 1.4.0,均为64位。
import matplotlib
matplotlib.use("MacOSX")