我目前正在通过教程关注此链接: Here is the one I am following。老兄给你代码。无论如何都把它包括在底部。
肯定会推荐。但现在面临问题:
已经勾选出引起问题的三条线路。当这些行不活动时工作正常。激活它们并运行会导致我的终端崩溃并收到消息:
内核似乎意外死亡。使用“重新启动内核”继续使用此控制台。
我真的一直在寻找解决方案。目标是将图表放入Tkinter GUI而不会崩溃。请帮忙!?
以下是代码,几乎与链接中提供的代码相同:
import matplotlib
#matplotlib.use("TkAgg")
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg,NavigationToolbar2TkAgg
from matplotlib.figure import Figure
import tkinter as tk
import pandas as pd
from tkinter import ttk
LARGE_FONT=("Consolas",12)
class SeaofBTCapp(tk.Tk):
def __init__(self,*args,**kwargs):
#
#tk.Tk.wm_title(self,"")
print("")
tk.Tk.__init__(self,*args,**kwargs)
tk.Tk.wm_title(self,"Hold my Hand")
tk.Tk.iconbitmap(self,default="1.ico")
container=tk.Frame(self)
container.pack(side="top", fill="both",expand=True)
container.grid_rowconfigure(0,weight=1)
container.grid_columnconfigure(0,weight=1)
self.frames={}
for F in (StartPage,PageThree):
frame=F(container, self)
self.frames[F]=frame
frame.grid(row=0,column=0,sticky="nsew") #north south east west
self.show_frame(StartPage)
def show_frame(self, cont):
frame = self.frames[cont]
frame.tkraise()
def qf(stringtoprint):
print(stringtoprint)
class StartPage(tk.Frame):
def __init__(self,parent,controller):
ttk.Frame.__init__(self,parent)
label=ttk.Label(self,text="Testing",font=LARGE_FONT)
label.pack(pady=10,padx=10)
button3=ttk.Button(self, text="Graph page",
command=lambda:controller.show_frame(PageThree))
#lambda:controller.show_frame(PageOne))
button3.pack()
class PageThree(tk.Frame):
def __init__(self, parent, controller):
# app=tk.Tk()
tk.Frame.__init__(self,parent)
label=tk.Label(self,text="Graph Page",font=LARGE_FONT)
label.pack(pady=10,padx=10)
label1=ttk.Button(self, text="Start Page",
command=lambda:controller.show_frame(StartPage))
label1.pack()
label1=ttk.Button(self, text="Back to Home",
command=lambda:controller.show_frame(StartPage))
label1.pack()
# f=Figure(figsize=(5,5))
# a=f.add_subplot(111)
# a.plot([1,2,3,4,5,6,7,8],[5,6,7,8,1,2,2,1])
# canvas=FigureCanvasTkAgg(f,self)
# canvas.show()
# canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH,expand=True)
app=SeaofBTCapp()
app.mainloop()
以上三六线导致Spyder崩溃。
答案 0 :(得分:1)
卸载conda版本并通过pip安装它会修复它。
有一个问题:https://github.com/ContinuumIO/anaconda-issues/issues/979
答案 1 :(得分:0)
我在几天内遇到了同样的问题(Python 3.5.2 / 64-bit,matplotlib 1.5.1,Win 10 Professional)。重新安装matplotlib,tkinter和Python并没有帮助。 Anaconda中的Tkinter + matplotlib也不起作用。由于我不够精通从源代码构建matplotlib,我刚刚安装了Ubuntu + Anaconda,它帮助解决了这个问题。
您发布的代码(即缩进等)有问题,我没有尝试修复它。但是下面的代码正在使用Ubuntu:
import matplotlib
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
import tkinter as tk
fig = Figure()
plt = fig.add_subplot(111)
plt.plot([1, 2], [1, 2])
root = tk.Tk()
canvas = FigureCanvasTkAgg(fig, master=root)
canvas._tkcanvas.pack(side=tk.TOP, fill=tk.BOTH, expand=1)
root.update()
root.mainloop()
我希望,它有所帮助。