From 1db9d43a62cd92cadd207037d777865b5e294359 Mon Sep 17 00:00:00 2001 From: Michel Date: Sun, 13 Apr 2025 10:04:25 +0200 Subject: [PATCH] Mise a jour de mon_script.py depuis develop --- domo91.py | 44 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/domo91.py b/domo91.py index d982ed8..0f7b645 100644 --- a/domo91.py +++ b/domo91.py @@ -17,6 +17,41 @@ db_config = { "database": "Sondes" } +def afficher_tableau_filtré(df): + st.markdown("### 🔧 Filtrage horaire") + + df = df.copy() + df["Date"] = pd.to_datetime(df["Date"]) + + # Supprimer la colonne Id si elle existe + if "Id" in df.columns: + df.drop(columns="Id", inplace=True) + + # Sélection de la tranche horaire + plage = st.selectbox( + "Sélectionnez une plage horaire :", + ["Toutes", "Matin (06h-12h)", "Après-midi (12h-18h)", "Soir (18h-00h)"] + ) + + if plage == "Matin (06h-12h)": + df = df[(df["Date"].dt.hour >= 6) & (df["Date"].dt.hour < 12)] + elif plage == "Après-midi (12h-18h)": + df = df[(df["Date"].dt.hour >= 12) & (df["Date"].dt.hour < 18)] + elif plage == "Soir (18h-00h)": + df = df[(df["Date"].dt.hour >= 18)] + + # Centrage de la colonne Température (et autres si souhaité) + def style_center(s): + return ['text-align: center'] * len(s) + + st.dataframe( + df.style.apply(style_center, subset=["Temperature"]), + use_container_width=True + ) + + return df + + if "authenticated" not in st.session_state: st.session_state["authenticated"] = False st.session_state["role"] = None @@ -109,7 +144,7 @@ if st.session_state["authenticated"]: try: conn = mysql.connector.connect(**db_config) cursor = conn.cursor(dictionary=True) - sites_possibles = ["Saclay", "Meudon", "Roissy"] + sites_possibles = ["Saclay", "Meudon"] if st.session_state["role"] == "superviseur": site_selectionne = st.selectbox("📍 Choisissez un site :", sites_possibles) else: @@ -130,10 +165,13 @@ if st.session_state["authenticated"]: cursor.execute("SELECT Temp_Max FROM Chambres_froides WHERE Lieu = %s AND Sonde = %s", (site_selectionne, sonde_choisie)) seuil = cursor.fetchone() seuil_temp = seuil["Temp_Max"] if seuil else 10 - st.dataframe(df_sonde, use_container_width=True) + + df_filtré = afficher_tableau_filtré(df_sonde) + + st.subheader("📈 Évolution de la température") fig, ax = plt.subplots(figsize=(10, 4)) - ax.plot(df_sonde["Date"], df_sonde["Temperature"], marker='o', label="Température") + ax.plot(df_filtré["Date"], df_filtré["Temperature"], marker='o', label="Température") ax.axhline(seuil_temp, color='red', linestyle='--', label=f"Seuil {seuil_temp}°C") ax.set_xlabel("Heure") ax.set_ylabel("Température (°C)")