Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.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
Python 为什么我的绘图在Spyder之外的matplotlib中冻结/不显示_Python_Python 3.x_Matplotlib_Plot_Backend - Fatal编程技术网

Python 为什么我的绘图在Spyder之外的matplotlib中冻结/不显示

Python 为什么我的绘图在Spyder之外的matplotlib中冻结/不显示,python,python-3.x,matplotlib,plot,backend,Python,Python 3.x,Matplotlib,Plot,Backend,因此,我有以下代码: import matplotlib.pyplot as plt import numpy as np from matplotlib import colors plt.ion() example_data = np.random.randint(5, size=(44,80)) cmap = colors.ListedColormap(['black','white','green','blue','red']) bounds = [0,1,2,3,4,5] norm

因此,我有以下代码:

import matplotlib.pyplot as plt
import numpy as np
from matplotlib import colors

plt.ion()

example_data = np.random.randint(5, size=(44,80))
cmap = colors.ListedColormap(['black','white','green','blue','red'])
bounds = [0,1,2,3,4,5]
norm = colors.BoundaryNorm(bounds, cmap.N)

img = plt.imshow(example_data, interpolation='nearest',origin='lower',cmap=cmap, norm=norm)
plt.draw()
如果在matplotlibrc中的后端设置为Qt4Agg的情况下运行此操作,则会出现绘图,但窗口“无响应”,需要强制关闭

如果在后端设置为GTK3Agg(这是我真正的目标)的情况下运行它,我会得到一个没有绘图的空白绘图窗口,并显示消息“python.exe已停止工作”

如果我在Spyder中运行它,那么一切都正常(我认为后端是Qt4Agg)。我得到的正是我想要的,没有冻结/无反应

有人能帮忙吗?我想我还没有完全理解在IDE之外运行它的交互问题

谢谢

编辑: 错误日志为:

Traceback (most recent call last)
  File"<string>", line 73, in execInThread
  File"<string>", line 44, in __call__
  File"C:\Program Files\PyScripter\Lib\rpyc.zip\rpyc\core\netref.py", line 196, in __call__
  File"C:\Program Files\PyScripter\Lib\rpyc.zip\rpyc\core\netref.py", line 71, in syncerq
  File"C:\Program Files\PyScripter\Lib\rpyc.zip\rpyc\core\protocol.py", line 431, in sync_request
  File"C:\Program Files\PyScripter\Lib\rpyc.zip\rpyc\core\protocol.py", line 379, in serve
  File"C:\Program Files\PyScripter\Lib\rpyc.zip\rpyc\core\protocol.py", line 337, in _recv
  File"C:\Program Files\PyScripter\Lib\rpyc.zip\rpyc\core\channel.py", line 50, in recv
  File"C:\Program Files\PyScripter\Lib\rpyc.zip\rpyc\core\stream.py", line 166, in read
EOFError: [WinError 10054] An existing connection was forcibly closed by the remote host

所以,也许这与libcairo-2.dll有关?我重新安装了GTK,看看这是否有帮助,但似乎没有什么不同。

在PyScripter 2.7.10中的菜单运行->Python引擎->内部。

在PyScripter 2.7.10中的菜单运行->Python引擎->内部。

若要查看绘图,请在
plt.draw()之前添加一个
plt.show()
,然后删除
plt.ion()
。或打开交互模式,添加
plt.show(block=True)
。这主要适用于Qt4Agg,当我使用“block=True”方法时,它会向我显示一个有响应的绘图,但当我关闭它时,它会生成另一个无响应的空白绘图窗口,我必须强制关闭该窗口。removing ion()方法对QT4Agg很有效。GTK3Agg都不工作虽然这是我真正想要的,但我仍然会收到相同的错误:“python.exe已停止工作”。您使用的是什么操作系统和python版本?您可能需要检查:。Windows 7和Python 3.4.3。今天早些时候,我通过安装Cairoffi解决了这个问题。我现在实际上没有看到任何错误消息,只是得到一个空白的绘图窗口,python崩溃了。您可以发布堆栈跟踪的内容吗?要查看绘图,请在
plt.draw()
之前添加一个
plt.show()
,然后删除
plt.ion()
。或打开交互模式,添加
plt.show(block=True)
。这主要适用于Qt4Agg,当我使用“block=True”方法时,它会向我显示一个有响应的绘图,但当我关闭它时,它会生成另一个无响应的空白绘图窗口,我必须强制关闭该窗口。removing ion()方法对QT4Agg很有效。GTK3Agg都不工作虽然这是我真正想要的,但我仍然会收到相同的错误:“python.exe已停止工作”。您使用的是什么操作系统和python版本?您可能需要检查:。Windows 7和Python 3.4.3。今天早些时候,我通过安装Cairoffi解决了这个问题。我现在没有看到任何错误消息,只是得到一个空白的绘图窗口,python崩溃了。你能发布堆栈跟踪的内容吗?
Faulting Application name:python.exe, version 0.0.0.0, time stamp: 0x54f9ed12
Faulting module name: libcairo-2.dll, version 0.0.0.0, time stamp 0x50a184bb
Exception code: 0xc0000005
Fault offset: 0x00023024
Faulting process id: 0xca8
Faulting application start time: 0x01d1f7a6ba424ee5
Faulting application path: C:\Anaconda3\python.exe
Faulting module path: C:\Anaconda3\Lib\site-packages\GTK+-Bundle-3.6.1\bin\libcairo-2.dll
Report Id: ff7c449c-6399-11e6-ba70-0cc47a6a54fd