Python 3.x Tkinter上的MatPlotLib在Python 3中以退出代码-1073741819结束

Python 3.x Tkinter上的MatPlotLib在Python 3中以退出代码-1073741819结束,python-3.x,matplotlib,tkinter,Python 3.x,Matplotlib,Tkinter,以下代码在Python2.7中运行良好,但在Python3.3中给出了一条错误消息(以退出代码-1073741819结束)。错误似乎发生在canvas=FigureCanvasTkAgg(self.f,master=self.root)中-调试不显示任何其他信息。任何可能的原因以及如何修复的建议都将不胜感激 原始代码来自下面的链接,该链接描述了如何将matplotlib与tkinter集成: 问题出在水蟒身上。删除并重新安装Matplotlib解决了问题。我遇到了相同的问题。在Anaconda

以下代码在Python2.7中运行良好,但在Python3.3中给出了一条错误消息(以退出代码-1073741819结束)。错误似乎发生在canvas=FigureCanvasTkAgg(self.f,master=self.root)中-调试不显示任何其他信息。任何可能的原因以及如何修复的建议都将不胜感激

原始代码来自下面的链接,该链接描述了如何将matplotlib与tkinter集成:


问题出在水蟒身上。删除并重新安装Matplotlib解决了问题。

我遇到了相同的问题。在Anaconda中更新matplotlib解决了该问题。在ipython中,您可以键入

!conda update matplotlib
执行更新

你能启动一个基本的tkinter窗口吗?(例如,尝试导入tkinter;root=tkinter.Tk();root.mainloop())我猜python3的tkinter安装可能有故障。tkinter工作正常,否则,只是FigureCastKagg造成了问题。如果tkinter工作正常,则安装matplotlib时出现了问题。您能用
TkAgg
后端显示正常图形吗?(例如,
导入matplotlib;matplotlib.use(“TkAgg”);导入matplotlib.pyplot作为plt;plt.subPlot();plt.show()
)您是如何安装matplotlib的?是的,我可以显示普通绘图,只要它们不与tkinter结合使用。我用的是Anaconda3,所以所有东西都是预装的。这在版本2.7中运行得非常好,而在版本3中其他一切似乎都正常。更正:我刚刚运行了您的示例,当窗口打开时,Python崩溃了。“python.exe已停止工作”,绘图窗口在没有TkAgg的情况下“没有响应”,工作正常,但当我使用它时,python.exe崩溃。
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()