From 0e82f4b084083ab10134320d7bb3ba9292d8d402 Mon Sep 17 00:00:00 2001 From: Andrea Fiorencis Date: Mon, 23 Jun 2025 12:23:25 +0200 Subject: [PATCH] rendiamola una funzione grazie --- Fotovoltaico.py | 130 ++++++++++++++++++++++++------------------------ 1 file changed, 65 insertions(+), 65 deletions(-) diff --git a/Fotovoltaico.py b/Fotovoltaico.py index 9e1b7bf..6f1485c 100644 --- a/Fotovoltaico.py +++ b/Fotovoltaico.py @@ -97,78 +97,78 @@ path_export_hourly = path_export.replace('.csv', '_hourly.csv') # Esporta il file orario df_hourly = export_hourly_pv_productivity(result_ac_energies_to_csv_df, path_export_hourly) -# Carica il file CSV orario -df = pd.read_csv('files/gen_pv/output_gen_pv_hourly.csv', index_col=0, parse_dates=True) +def genera_giornaliero(): + # Carica il file CSV orario + df = pd.read_csv('files/gen_pv/output_gen_pv_hourly.csv', index_col=0, parse_dates=True) -# Raggruppa per giorno e somma la produzione -df_daily = df.resample('D').sum() + # Raggruppa per giorno e somma la produzione + df_daily = df.resample('D').sum() -# Crea il grafico giornaliero -fig = px.line( - df_daily, - x=df_daily.index, - y='gen_pv_100_kWp', - title='Produttività Fotovoltaica Giornaliera', - labels={'gen_pv_100_kWp': 'Energia [kWh]', 'index': 'Data'} -) -fig.show() - -# Raggruppa per mese e somma la produzione -df_monthly = df.resample('M').sum() -df_monthly['Mese'] = df_monthly.index.strftime('%B %Y') # Nome mese e anno - - -# Estrai tutte le date disponibili (solo la parte di data, senza ora) -date_options = df.index.normalize().unique() - -# Crea una lista di grafici, uno per ogni giorno -fig = go.Figure() - -for date in date_options: - daily_data = df[df.index.normalize() == date] - fig.add_trace( - go.Scatter( - x=daily_data.index, - y=daily_data['gen_pv_100_kWp'], - name=str(date.date()), - visible=False - ) + # Crea il grafico giornaliero + fig = px.line( + df_daily, + x=df_daily.index, + y='gen_pv_100_kWp', + title='Produttività Fotovoltaica Giornaliera', + labels={'gen_pv_100_kWp': 'Energia [kWh]', 'index': 'Data'} ) + fig.show() -# Rendi visibile solo il primo giorno all'avvio -fig.data[0].visible = True + # Raggruppa per mese e somma la produzione + df_monthly = df.resample('M').sum() + df_monthly['Mese'] = df_monthly.index.strftime('%B %Y') # Nome mese e anno -# Crea i pulsanti per il menu a tendina -buttons = [] -for i, date in enumerate(date_options): - visible = [False] * len(date_options) - visible[i] = True - buttons.append( - dict( - label=str(date.date()), - method="update", - args=[{"visible": visible}, - {"title": f"Produttività Fotovoltaica Oraria - {date.date()}"}] + + # Estrai tutte le date disponibili (solo la parte di data, senza ora) + date_options = df.index.normalize().unique() + + # Crea una lista di grafici, uno per ogni giorno + fig = go.Figure() + + for date in date_options: + daily_data = df[df.index.normalize() == date] + fig.add_trace( + go.Scatter( + x=daily_data.index, + y=daily_data['gen_pv_100_kWp'], + name=str(date.date()), + visible=False + ) ) + + # Rendi visibile solo il primo giorno all'avvio + fig.data[0].visible = True + + # Crea i pulsanti per il menu a tendina + buttons = [] + for i, date in enumerate(date_options): + visible = [False] * len(date_options) + visible[i] = True + buttons.append( + dict( + label=str(date.date()), + method="update", + args=[{"visible": visible}, + {"title": f"Produttività Fotovoltaica Oraria - {date.date()}"}] + ) + ) + + fig.update_layout( + updatemenus=[ + dict( + active=0, + buttons=buttons, + x=0.5, + xanchor="center", + y=1.15, + yanchor="top" + ) + ], + title=f"Produttività Fotovoltaica Oraria - {date_options[0].date()}", + xaxis_title="Ora", + yaxis_title="Energia [kWh]" ) - -fig.update_layout( - updatemenus=[ - dict( - active=0, - buttons=buttons, - x=0.5, - xanchor="center", - y=1.15, - yanchor="top" - ) - ], - title=f"Produttività Fotovoltaica Oraria - {date_options[0].date()}", - xaxis_title="Ora", - yaxis_title="Energia [kWh]" -) - -fig.show() + fig.show() if joePlaying: joe.terminate()