以下代码在Python 2.7中运行良好,但在Python 3.3中给出了一条错误消息(退出代码为-1073741819)。该错误似乎发生在canvas = FigureCanvasTkAgg(self.f,master = self.root)中 - 调试不显示任何其他信息。任何建议可能是什么原因以及如何解决它是值得赞赏的。
原始代码源自以下链接,该链接描述了如何将matplotlib与tkinter集成: http://matplotlib.org/examples/user_interfaces/embedding_in_tk.html
import tkinter as tk
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
from matplotlib.figure import Figure
import Charts as sp
class GUI(tk.Frame):
def __init__(self, master=None):
self.l=[]
self.active=False
self.root = self.root = tk.Tk()
self.root.title('Test')
self.x=[]; self.y=[]; self.x = range(0, 100)
for each in self.x:
self.y.append(2)
self.f = Figure(figsize=(5,4), dpi=60);
self.a = self.f.add_subplot(111)
self.line1, = self.a.plot(self.x, self.y, 'r-') # Returns a tuple of line objects, thus the comma
self.a.axis((0,100,0,5))
self.a.set_title('Plot Title')
canvas = FigureCanvasTkAgg(self.f, master=self.root)
canvas.show()
if __name__ == '__main__':
gui = GUI()
gui.root.mainloop()
答案 0 :(得分:2)
问题在于Anaconda。删除并重新安装Matplotlib解决了这个问题。
答案 1 :(得分:0)
我遇到了同样的问题。更新Anaconda的matplotlib解决了这个问题。在ipython中,您可以输入
!conda update matplotlib
进行更新。