Я создаю программу Tkinter, в которой пользователь может ввести значение для создания затененной диаграммы Венна с помощью matplotlib-venn. Вот часть моего кода, в которой даются инструкции, когда после ввода формулы нажимается кнопка «Рассчитать», которая отображает диаграмму matplotlib на холсте в Tkinter.
def whenClicked():
if str(selected.get()) == '3':
plot1, v1 = configuration.createVenn3(formula.get())
diagram = FigureCanvasTkAgg(plot1, master=window)
if str(selected.get()) == '2':
plot2, v2 = configuration.createVenn2(formula.get())
diagram = FigureCanvasTkAgg(plot2, master=window)
diagram.get_tk_widget().pack()
diagram.draw()
Оператор if предназначен для определения количество кругов на диаграмме Венна, нужно ли составить матричную диаграмму в двухполюсной или трехкруговой системе матплотлиб-венна. Таким образом, в буквальном смысле порядок состоит в том, чтобы настроить plot и v, а затем определить диаграмму, которая является объектом canvas, и затем построить диаграмму на холсте Tkinter.
Таким образом, функция FigureCanvasTkAgg создаст новую переменную Вызовите диаграмму и нанесите настроенную диаграмму на GUI. Однако здесь мне любопытно, как я могу настроить Python для удаления (уничтожения) диаграммы и создания (рисования) новой, когда пользователь вводит новую формулу и снова нажимает кнопку. В настоящее время в приведенной выше настройке, когда я снова нажимаю кнопку с новой формулой, новая диаграмма будет отображаться под старой диаграммой без разрушения старой диаграммы, так что это не очень хорошая идея. Я надеюсь, что новая диаграмма будет построена в том же положении, что и старая диаграмма.
Есть идеи?