Python 按下按钮后在Tkinter中显示networkx图形

Python 按下按钮后在Tkinter中显示networkx图形,python,matplotlib,tkinter,networkx,Python,Matplotlib,Tkinter,Networkx,试图让一个简单的Tkinter应用程序在用户点击按钮时显示networkx图形。以下是我的代码: import tkinter as tk from tkinter import filedialog import pandas as pd import copy import numpy as np import networkx as nx import matplotlib.pyplot as plt import matplotlib matplotlib.use("TkAgg")

试图让一个简单的Tkinter应用程序在用户点击按钮时显示networkx图形。以下是我的代码:

import tkinter as tk
from tkinter import filedialog
import pandas as pd
import copy
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
import matplotlib

matplotlib.use("TkAgg")

from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg#, NavigationToolbar2TkAgg
from matplotlib.figure import Figure


class Window(Frame):

    def __init__(self, master=None):
        Frame.__init__(self, master)               
        self.master = master
        self.init_window()

    def UploadAction(self,event=None):
        filename = filedialog.askopenfilename(initialdir = "/",title = "Select file",filetypes=(()))


    def runAnalysis(self,event=None):
        df = pd.DataFrame({'from': ['B', 'C', 'D', 'E','F','F'], 'to': ['A', 'A', 'A', 'A','C','B']})
        node_sizes = [2000,26400,2000,2000,2000,2000]
        node_colors = ['#3da4ab','#fe8a71','#3da4ab','#fe8a71','#f6cd61','#f6cd61']

        f = plt.figure(figsize=(5,4))
        a = f.add_subplot(111)
        plt.axis('off')

        # Build your graph
        G = nx.from_pandas_edgelist(df, 'from', 'to')

        # Plot it
        nx.draw(G, node_size=node_sizes, node_color=node_colors, with_labels=True, linewidths=0, edgecolors='black')

        canvas = FigureCanvasTkAgg(f, master=self.master)
        canvas.show()
        canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)

        #plt.show()


    def init_window(self):
        self.master.title('Title... ')
        self.pack(fill=BOTH, expand=1)
        quitButton = Button(self, text="Quit",command=self.master.destroy)
        quitButton.place(x=0, y=0)
        uploadButton = Button(self,text="UploadFile",command=self.UploadAction)
        uploadButton.pack()

        runNetworkButton = Button(self,text="run analysis")
        runNetworkButton.pack()



r = tk.Tk()
r.geometry("800x400")
app = Window(r)
r.mainloop()
当我单击运行分析按钮时,什么也没有发生。有人知道我做错了什么吗?我的怀疑是这和
canvas=FigureCanvasTkAgg(f,master=self.master)


提前谢谢

运行网络按钮应该调用,command=runAnalysis.ARGH!!。。。这么简单。。。谢谢@JohnT->今天没有足够的咖啡什么的。。。