График не рисуются второй раз после очищение на Tkinter
Всем привет! Я совсем новичок на программировании, помогите если не сложно ) Я создаю программу для решение уравнения на Tkinter и хотела добавить графический способ решений. График работает правильно. Но когда очищаешь график, он заново не рисуются. Что мне делать? P.s. Я первый раз задаю вопрос, если есть ошибки простите.
Функция для графика
def graf(a,b,c,d):
x = np.linspace(-10, 10, num = 100)
fx = []
for i in range(len(x)):
fx.append(a*x[i]**3 - b*x[i]**2 + c*x[i] + d)
f_plot.plot(x, fx)
f_plot.grid()
f_plot.axvline()
f_plot.axhline()
canvs.draw()
return
Функция для кнопки "решить"
def handler():
try:
a_val = float(a.get())
b_val = float(b.get())
c_val = float(c.get())
d_val = float(d.get())
inserter(calculate(a_val, b_val, c_val,d_val))
graf(a_val, b_val, c_val,d_val)
except ValueError:
show_error()
Функция для кнопки "очистиь"
def clear():
canvs.get_tk_widget().delete('all')
f = Figure(figsize=(6, 3), dpi=100)
f_plot = f.add_subplot(111)
canvs = FigureCanvasTkAgg(f, root)
canvs.get_tk_widget().place(x=20, y = 330)
return
f = Figure(figsize=(6, 3), dpi=100)
f_plot = f.add_subplot(111)
canvs = FigureCanvasTkAgg(f, root)
canvs.get_tk_widget().place(x=20, y = 330)
root.mainloop()
canvs.get_tk_widget().delete('all') это код очищает все,поэтому я заново рисую координаты Но после первого очищение, второй раз не рисует график. Но код никаких ошибки не вызывает.