Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.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 Matplotlib后端\u tkagg错误_Python_Matplotlib_Spyder - Fatal编程技术网

Python Matplotlib后端\u tkagg错误

Python Matplotlib后端\u tkagg错误,python,matplotlib,spyder,Python,Matplotlib,Spyder,我为Windows7安装了Anaconda3(64位)Python3.4,并尝试测试Matplotlib中的一个示例。但当我运行脚本时,出现了如下异常: Traceback (most recent call last): File "<ipython-input-7-7482c0850da6>", line 1, in <module> runfile('E:/Kanbox/Python/HWV/test/matplotlib_test.py', wdir

我为Windows7安装了Anaconda3(64位)Python3.4,并尝试测试Matplotlib中的一个示例。但当我运行脚本时,出现了如下异常:

Traceback (most recent call last):

  File "<ipython-input-7-7482c0850da6>", line 1, in <module>
    runfile('E:/Kanbox/Python/HWV/test/matplotlib_test.py', wdir='E:/Kanbox/Python/HWV/test')

  File "C:\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 585, in runfile
    execfile(filename, namespace)

  File "C:\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 48, in execfile
    exec(compile(open(filename, 'rb').read(), filename, 'exec'), namespace)

  File "E:/Kanbox/Python/HWV/test/matplotlib_test.py", line 36, in <module>
    canvas.show()

  File "C:\Anaconda3\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 349, in draw
    tkagg.blit(self._tkphoto, self.renderer._renderer, colormode=2)

  File "C:\Anaconda3\lib\site-packages\matplotlib\backends\tkagg.py", line 20, in blit
    tk.call("PyAggImagePhoto", photoimage, id(aggimage), colormode, id(bbox_array))

TclError
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
runfile('E:/Kanbox/Python/HWV/test/matplotlib_test.py',wdir='E:/Kanbox/Python/HWV/test')
文件“C:\Anaconda3\lib\site packages\spyderlib\widgets\externalshell\sitecustomize.py”,第585行,在runfile中
execfile(文件名、命名空间)
文件“C:\Anaconda3\lib\site packages\spyderlib\widgets\externalshell\sitecustomize.py”,第48行,在execfile中
exec(编译(打开(文件名'rb').read(),文件名'exec'),命名空间)
文件“E:/Kanbox/Python/HWV/test/matplotlib_test.py”,第36行,在
canvas.show()
文件“C:\Anaconda3\lib\site packages\matplotlib\backends\backend\backend\u tkagg.py”,第349行,在绘图中
blit(self.\u tkphoto,self.renderer.\u renderer,colormode=2)
文件“C:\Anaconda3\lib\site packages\matplotlib\backends\tkagg.py”,第20行,blit格式
调用(“PyAggImagePhoto”、photoimage、id(aggimage)、colormode、id(bbox_数组))
Tcl错误
代码来自未修改的示例:

#!/usr/bin/env python
import matplotlib
matplotlib.use('TkAgg')

from numpy import arange, sin, pi
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
from matplotlib.figure import Figure

import sys
if sys.version_info[0] < 3:
    import Tkinter as Tk
else:
    import tkinter as Tk

def destroy(e): sys.exit()

root = Tk.Tk()
root.wm_title("Embedding in TK")
root.bind("<Destroy>", destroy)


f = Figure(figsize=(5,4), dpi=100)
a = f.add_subplot(111)
t = arange(0.0, 3.0, 0.01)
s = sin(2*pi*t)

a.plot(t,s)
a.set_title('Tk embedding')
a.set_xlabel('X axis label')
a.set_ylabel('Y label')



# A tk.DrawingArea
canvas = FigureCanvasTkAgg(f, master=root)
canvas.show()
canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)

#toolbar = NavigationToolbar2TkAgg(canvas, root)
#toolbar.update()
canvas._tkcanvas.pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)

button = Tk.Button(master=root, text='Quit', command=sys.exit)
button.pack(side=Tk.BOTTOM)

Tk.mainloop()
#/usr/bin/env python
导入matplotlib
matplotlib.use('TkAgg')
来自numpy import arange,sin,pi
从matplotlib.backends.backend_tkagg导入图CAVASTKAGG,导航工具栏2TKAGG
从matplotlib.figure导入图形
导入系统
如果系统版本信息[0]<3:
将Tkinter作为Tk导入
其他:
将tkinter作为Tk导入
def销毁(e):系统退出()
root=Tk.Tk()
root.wm_标题(“嵌入TK”)
root.bind(“,destroy)
f=图(figsize=(5,4),dpi=100)
a=f.add_子批次(111)
t=arange(0.0,3.0,0.01)
s=sin(2*pi*t)
a、 图(t,s)
a、 设置标题(“Tk嵌入”)
a、 设置标签(“X轴标签”)
a、 设置标签(“Y标签”)
#拉文加地区
canvas=FigureCanvasTkAgg(f,master=root)
canvas.show()
canvas.get_tk_widget().pack(side=tk.TOP,fill=tk.BOTH,expand=1)
#toolbar=NavigationToolbar2TkAgg(画布,根)
#toolbar.update()
canvas.\u tkcanvas.pack(side=Tk.TOP,fill=Tk.BOTH,expand=1)
button=Tk.button(master=root,text='Quit',command=sys.exit)
按钮组件(侧面=底部)
Tk.mainloop()
似乎tkagg.blit无法获得正确的渲染器,因此引发了一个异常。我找不到self.renderer.\u renderer所指的位置。然后我在spyderlib 1831期中发现了一个类似的问题:


我猜这是Spyder之间的Python3.4的问题,所以我安装了适用于Windows7的Anaconda(32位)Python2.7,并尝试在另一个Windows7系统中运行上面的示例脚本。然后tkinter GUI以matplotlib图正常显示,没有出现异常。所以我想也许这确实是Spyder版本的问题。我们的项目基于Python3.4,我们不想回到Python2.7,因为它的迁移非常复杂。如何解决此问题?

这是Anaconda
tk
Matplotlib后端中的一个错误,据我所知,它只影响Windows用户


我让Continuum的人知道了这一点,但不幸的是,他们告诉我这对他们来说是低优先级的,因为很少有人使用
tk
后端。

是未修改的示例()?如果没有,示例是否正确运行?如果是这样,您应该修改您的问题,以反映这不是您的代码。是的,这是您发布的链接中未修改的示例,谢谢您的建议,我已经修改了我的问题。