"Rectification du programme"
This commit is contained in:
44
domo91.py
44
domo91.py
@@ -17,6 +17,41 @@ db_config = {
|
|||||||
"database": "Sondes"
|
"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:
|
if "authenticated" not in st.session_state:
|
||||||
st.session_state["authenticated"] = False
|
st.session_state["authenticated"] = False
|
||||||
st.session_state["role"] = None
|
st.session_state["role"] = None
|
||||||
@@ -109,7 +144,7 @@ if st.session_state["authenticated"]:
|
|||||||
try:
|
try:
|
||||||
conn = mysql.connector.connect(**db_config)
|
conn = mysql.connector.connect(**db_config)
|
||||||
cursor = conn.cursor(dictionary=True)
|
cursor = conn.cursor(dictionary=True)
|
||||||
sites_possibles = ["Saclay", "Meudon", "Roissy"]
|
sites_possibles = ["Saclay", "Meudon"]
|
||||||
if st.session_state["role"] == "superviseur":
|
if st.session_state["role"] == "superviseur":
|
||||||
site_selectionne = st.selectbox("📍 Choisissez un site :", sites_possibles)
|
site_selectionne = st.selectbox("📍 Choisissez un site :", sites_possibles)
|
||||||
else:
|
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))
|
cursor.execute("SELECT Temp_Max FROM Chambres_froides WHERE Lieu = %s AND Sonde = %s", (site_selectionne, sonde_choisie))
|
||||||
seuil = cursor.fetchone()
|
seuil = cursor.fetchone()
|
||||||
seuil_temp = seuil["Temp_Max"] if seuil else 10
|
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")
|
st.subheader("📈 Évolution de la température")
|
||||||
fig, ax = plt.subplots(figsize=(10, 4))
|
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.axhline(seuil_temp, color='red', linestyle='--', label=f"Seuil {seuil_temp}°C")
|
||||||
ax.set_xlabel("Heure")
|
ax.set_xlabel("Heure")
|
||||||
ax.set_ylabel("Température (°C)")
|
ax.set_ylabel("Température (°C)")
|
||||||
|
|||||||
Reference in New Issue
Block a user