import tkinter from matplotlib.backends.backend_tkagg import ( FigureCanvasTkAgg, NavigationToolbar2Tk) import matplotlib as plt from matplotlib.figure import Figure from matplotlib import * import numpy as np import pandas as pd import datetime class windowtk: def __init__(self, master): self.master = master master.title("EV Smart Charging") self.label = tk.Label(master, text="This is our first GUI!") self.label.pack() self.close_button = tk.Button(master, text="Close", command=master.quit) self.close_button.pack() class Graph(): def __init__(self,root,canvas,xloc,yloc,temps,data): self.fig = Figure(figsize=(5, 4), dpi=100) self.root=root self.xloc=xloc self.yloc=yloc self.temps=temps self.data=data self.canvas=canvas def draw(self,x_loc,y_loc,temps,data,canvas): date_start = datetime.datetime(year=2019, month=1, day=1,hour=17) date_end = datetime.datetime(year=2019, month=1, day=2, hour=8) zebi=pd.date_range(start=date_start, end=date_end, freq="1800s") zebi.strftime("%H") fig = Figure(figsize=(5, 4), dpi=100) ### A faire : Formater les dates pour n'afficher que les heures ax=fig.add_subplot(111) ax.set_title("Consommation d'une maison") ax.set_xlabel("Temps") ax.set_ylabel("Puissance (W)") ax.xaxis.set_ticks(range(24)) ax.xaxis.set_ticklabels(zebi,rotation=90,fontsize=8) ax.plot(temps, data) canvas = FigureCanvasTkAgg(fig, master=root) canvas.draw() canvas.get_tk_widget().place(x=x_loc,y=y_loc) root = tk.Tk() button = tkinter.Button(master=root, text="Quit", command=quit) button.pack(side=tkinter.BOTTOM) root_dimension = "2000x2000" root.geometry(root_dimension) my_gui = windowtk(root) fig = Figure(figsize=(5, 4), dpi=100) canvas = FigureCanvasTkAgg(fig, master=root) x=np.arange(24) y=np.sin(np.arange(24)) i=0 for i in range(0,24): graph_un=Graph(root,canvas,0,0,x,y) graph_un.draw(0,0,x[0:i],y[0:i],canvas) root.after(1000,graph_un.draw(0,0,x[0:i],y[0:i],canvas)) root.mainloop()