Is there a way to destroy a matplotlib figure live in tkinter?

Viewed 312

I've successfully figured out how to display a matplotlib graph on a tkinter window. But, I want to have a button below the plot that will destroy it on command. Is there a way to accomplish this easily?

import tkinter as tk
from pandas import DataFrame
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
import numpy as np

import datetime
from datetime import datetime as d

def clearplot():
    figure.clf()

root= tk.Tk()

data = {'Input': hours,
         'Output': [0,0,0,0,0,0,0,0,0,0,0,0]}

df = DataFrame(data,columns=['Input','Output'])

figure = plt.Figure(figsize=(3,2), dpi=100, facecolor='#f0f0f0')
ax = figure.add_subplot(111)
line = FigureCanvasTkAgg(figure, root)
line.get_tk_widget().pack()
df = df[['Input','Output']].groupby('Input').sum()
df.plot(kind='line', legend=False, ax=ax, color='black',marker='o', fontsize=10)
ax.set_title('Graph')
ax.xaxis.set_major_formatter(time_form)
figure.tight_layout()

clear_button=tk.Button(root,text="Clear",command=clearplot)

clear_button.pack()

root.mainloop()

Thanks.

0 Answers
Related