В моем tkinter GUI у меня есть две кнопки, которые строят график для разных параметров, но когда я нажимаю на одну из кнопок, график строится успешно, и я не встраиваю окно matplotlib в любое другое окно tkinter, я напрямую вызов графика matplotlib, но если не закрывать один построенный график, если я нажимаю на другой, открывается другой график windows, и внезапно появляется ошибка, что python программа не отвечает. Так что встраивание графика matplotlib в другое окно верхнего уровня поможет, мы не можем вызывать несколько графиков, не встраивая их в окно tkinter. Вот пример кода
from tkinter import *
import matplotlib.pyplot as plt
import matplotlib
matplotlib.use("TkAgg")
import mttkinter
import threading
def plottingthefirst():
plt.figure()
parameter1 = [5, 6, 7, 8, 9]
plt.plot(parameter1, marks)
plt.xlabel('parameter1')
plt.ylabel('marks')
plt.show()
def plottingthesecond():
plt.figure()
parameter2 = [1, 2, 3, 4, 5]
plt.plot(parameter2, marks)
plt.xlabel('parameter2')
plt.ylabel('marks')
plt.show()
def func3():
threading.Thread(target=plottingthefirst).start()
def func4():
threading.Thread(target=plottingthesecond).start()
root = Tk(mt_debug=1)
root.geometry('445x788')
global marks
marks = [10, 20, 30, 40, 50]
B1 = Button(root, text="Plot1", command=func3).grid(row=1, column=1)
B2 = Button(root, text="Plot2", command=func4).grid(row=2, column=1)
root.mainloop()
Мне нужно вызвать потоки здесь, потому что это не точный код, который я использую в основном, я выполняю обработку перед построением графика для извлечения значений параметров x и y, поэтому, если я удалю потоки, мое главное окно будет зависать, поэтому мне нужно потоки здесь, так что есть какое-либо решение, которое без удаления threading мы можем отображать несколько графиков одновременно