我必须使用 MNE 库中的 plot 函数,该函数返回我的绘图的 matplotlib 图。
当我在 Tkinter 下构建应用程序时,我希望该图形出现在我的应用程序的窗口中。
我使用了这段代码。该图同时出现在应用程序的窗口和另一个 matplotlib 图中。问题是应用程序中出现的内容是静态的,它只是 matplotlib 图形的一个实例,我需要一个交互式图形。
import tkinter as tk
from tkinter import ttk
from tkinter.filedialog import askopenfile
import matplotlib
matplotlib.use("TkAgg")
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk
from matplotlib.figure import Figure
from matplotlib import pyplot as plt
import mne
root = tk.Tk()
frame2 = tk.Frame(root)
frame2.pack(side= tk.LEFT,ipadx=500,ipady=350)
#Data path
file = 'C:\\Users\\...\chb01_01.edf'
#EDF to MNE Raw
data_raw = mne.io.read_raw_edf(file, preload=True)
but1 = tk.Button(frame2, text="plot",
command=lambda: time_plot(data_raw))
but1.pack()
def time_plot(data_raw):
f = data_raw.plot(duration=5, n_channels=23)
canvas = FigureCanvasTkAgg(f, frame2)
toolbarFrame = tk.Frame(frame2)
toolbarFrame.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
toolbar = NavigationToolbar2Tk(canvas, toolbarFrame)
canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=True)
root.mainloop()
关于如何解决问题的任何想法?