以下代碼在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()
你可以啓動一個基本的tkinter窗口嗎? (例如,嘗試'import tkinter; root = tkinter.Tk(); root.mainloop()')我猜你可能在某種程度上爲python3安裝了破損的Tkinter。 –
tkinter工作正常否則,它只是造成問題的圖像CanvasTkAgg。 – Nickpick
如果Tkinter正在工作,那麼當您安裝matplotlib時會出現問題。你能用'TkAgg'後端顯示一個正常的數字嗎? (例如'import matplotlib; matplotlib.use(「TkAgg」); import matplotlib.pyplot as plt; plt.subplots(); plt.show()')你是如何安裝matplotlib的? –