Я создаю GUI под tkinter, и мне нужно отобразить сигналы ЭЭГ на странице моего приложения. После импорта всего необходимого я создал холст следующим образом:
class StartPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self,parent)
label = tk.Label(self, text=("Time Representation"), font=LARGE_FONT)
label.pack(pady=10,padx=10)
f = plt.figure()
a = f.add_subplot(111)
canvas = FigureCanvasTkAgg(f, self)
canvas.get_tk_widget().pack(side=tk.BOTTOM, fill=tk.BOTH, expand=True)
toolbar = NavigationToolbar2Tk(canvas, self)
toolbar.update()
canvas._tkcanvas.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
button1 = ttk.Button(self, text="plot",
command=lambda: time_plot())
button1.pack()
def time_plot()
Проблема заключается в том, что при построении моих данных открывается другая фигура, и страница моего приложения отображается с пустым графиком.
Вот часть графика моей функции:
def time_plot():
....
a.set_xticks(np.arange(t_window))
lines = LineCollection(segs, offsets=offsets, transOffset=None)
a.add_collection(lines)
a.set_yticks(ticklocs)
a.set_yticklabels(ch_names)
a.set_xlabel('Time (s)')
plt.tight_layout()
plt.show()
canvas.draw()
Поскольку я новичок и в python, и в tkinter, я не знаю, где проблема в том, чтобы заставить сюжет появиться в приложении. Я думаю, что это вызвано plt.show (), но я не знаю, как это исправить.