2015-09-26 113 views
1

以下代碼在Python 2.7中運行良好,但在Python 3.3中出現錯誤消息(以退出代碼-1073741819結束)。該錯誤似乎發生在canvas = FigureCanvasTkAgg(self.f,master = self.root) - 調試不顯示任何其他信息。任何建議可能是什麼原因以及如何解決它,我們感激。Tkinter上的MatPlotLib在Python 3中以退出代碼-1073741819完成

原代碼從下面的鏈接,其中介紹瞭如何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

你可以啓動一個基本的tkinter窗口嗎? (例如,嘗試'import tkinter; root = tkinter.Tk(); root.mainloop()')我猜你可能在某種程度上爲python3安裝了破損的Tkinter。 –

+0

tkinter工作正常否則,它只是造成問題的圖像CanvasTkAgg。 – Nickpick

+0

如果Tkinter正在工作,那麼當您安裝matplotlib時會出現問題。你能用'TkAgg'後端顯示一個正常的數字嗎? (例如'import matplotlib; matplotlib.use(「TkAgg」); import matplotlib.pyplot as plt; plt.subplots(); plt.show()')你是如何安裝matplotlib的? –

回答

2

的問題是與蟒蛇。刪除並重新安裝Matplotlib解決了這個問題。

0

我遇到了同樣的問題。更新Anaconda中的matplotlib解決了這個問題。在ipython中,您可以鍵入
!conda update matplotlib來執行更新。