График не рисуются второй раз после очищение на 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') это код очищает все,поэтому я заново рисую координаты Но после первого очищение, второй раз не рисует график. Но код никаких ошибки не вызывает.


Ответы (0 шт):