import tkinter as tk
from tkinter import messagebox
import csv
import os
import [Link] as plt
from [Link].backend_tkagg import FigureCanvasTkAgg
# Chemin du fichier CSV
csv_file =
[Link]([Link]([Link]([Link](__file__))),
'data', '[Link]')
def afficher_statistiques():
if not [Link](csv_file):
[Link]("Erreur", "Aucun relevé disponible.")
return
try:
consommations = []
# Lecture du fichier CSV
with open(csv_file, 'r') as f:
reader = [Link](f)
for row in reader:
consommation = float(row['consommation'])
[Link](consommation)
if not consommations:
[Link]("Statistiques", "Aucune donnée à analyser.")
return
total = sum(consommations)
moyenne = total / len(consommations)
maximum = max(consommations)
minimum = min(consommations)
fenetre = [Link]()
[Link]("Statistiques de consommation")
[Link]("350x250")
[Link](fenetre, text=f"Consommation totale : {total:.2f}
kWh").pack(pady=5)
[Link](fenetre, text=f"Moyenne : {moyenne:.2f}
kWh").pack(pady=5)
[Link](fenetre, text=f"Maximum : {maximum:.2f}
kWh").pack(pady=5)
[Link](fenetre, text=f"Minimum : {minimum:.2f}
kWh").pack(pady=5)
[Link](fenetre, text="Voir le graphique",
command=afficher_graphique).pack(pady=10)
[Link](fenetre, text="Fermer",
command=[Link]).pack(pady=10)
except Exception as e:
[Link]("Erreur", f"Impossible de calculer les
statistiques : {e}")
def afficher_graphique():
if not [Link](csv_file):
[Link]("Erreur", "Aucun relevé disponible.")
return
dates = []
consommations = []
try:
# Lecture du fichier CSV
with open(csv_file, 'r') as f:
reader = [Link](f)
for row in reader:
[Link](row['date'])
[Link](float(row['consommation']))
if not consommations:
[Link]("Graphique", "Aucune donnée à afficher.")
return
# Création de la figure matplotlib
fig, ax = [Link](figsize=(6, 4))
[Link](dates, consommations, marker='o', linestyle='-', color='blue')
ax.set_xlabel('Date')
ax.set_ylabel('Consommation (kWh)')
ax.set_title('Consommation en fonction du temps')
[Link](True)
[Link](rotation=45)
# Fenêtre Tkinter contenant le graphique
fenetre_graph = [Link]()
fenetre_graph.title("Graphique de consommation")
fenetre_graph.geometry("700x500")
canvas = FigureCanvasTkAgg(fig, master=fenetre_graph)
[Link]()
canvas.get_tk_widget().pack()
[Link](fenetre_graph, text="Fermer",
command=fenetre_graph.destroy).pack(pady=10)
except Exception as e:
[Link]("Erreur", f"Erreur lors de l'affichage du
graphique : {e}")