Кроме того, график в GUI обновляется только при взаимодействии с FigureCanvas, то есть либо изменяя его размер, увеличивая главное окно или используя панель NavigationToolbar. Заранее спасибо!
from pylab import *
import skrf as rf
rf.stylely()
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
from tkinter import *
from tkinter.filedialog import askopenfilename
def graph():
rf.Network(filename).plot_s_db(ax=fig.gca())
rf.Network(filename).plot_s_smith(ax=fig2.gca())
def browseFile():
global filename
n=2
filename = askopenfilename(defaultextension=f".s{n}p",filetypes=[("Touchstone File",f"*.s{n}p")])
fig.clf()
fig2.clf()
if __name__ == '__main__':
root = Tk()
root.geometry("1500x900+200+60")
root.minsize(900,900)
# Plot 1 Frame
frame4 = Frame(root,bg="light grey",highlightbackground="black", highlightthickness=1)
frame4.pack(side="left",fill="both",expand=1)
# Browse Area Frame
frame3 = Frame(root,bg="light grey",highlightbackground="black", highlightthickness=1)
frame3.pack(side="left")
# Plot 2 Frame
frame5 = Frame(root,bg="light grey",highlightbackground="black", highlightthickness=1)
frame5.pack(side="left",fill="both",expand=1)
b = Button(frame3,fg="red",text="Browse",command=browseFile)
b.grid(row=1,column=1,pady=20, padx=10)
b.config(height = 2, width = 8)
b = Button(frame3,text="Plot!",fg="red",command=graph)
b.grid(row=1,column=2,pady=20,padx=10)
b.config(height = 2, width = 8)
# Plot 1
Label(frame4,text="S Parameters",bg="light grey").pack()
fig = Figure(figsize=(8.67, 5.4), dpi=100)
# fig.clf()
fig.add_subplot(111)
canvas1 = FigureCanvasTkAgg(fig,frame4) # A tk.DrawingArea.
toolbar = NavigationToolbar2Tk(canvas1,frame4)
toolbar.update()
canvas1._tkcanvas.pack(side="top", expand=0)
canvas1.get_tk_widget().pack(expand=1)
# canvas1.draw()
# Plot 2
Label(frame5,text="Smith Chart",bg="light grey").pack()
fig2 = Figure(figsize=(8.67, 5.4), dpi=100)
# fig2.clf()
fig2.add_subplot(111)
canvas2 = FigureCanvasTkAgg(fig2,frame5)
toolbar = NavigationToolbar2Tk(canvas2,frame5)
toolbar.update()
canvas2._tkcanvas.pack(side="top", expand=0)
canvas2.get_tk_widget().pack(expand=1)
# canvas2.draw()
root.mainloop()