rendiamola una funzione grazie

This commit is contained in:
2025-06-23 12:23:25 +02:00
parent 2fe8df9db2
commit 0e82f4b084

View File

@@ -97,34 +97,35 @@ path_export_hourly = path_export.replace('.csv', '_hourly.csv')
# Esporta il file orario # Esporta il file orario
df_hourly = export_hourly_pv_productivity(result_ac_energies_to_csv_df, path_export_hourly) df_hourly = export_hourly_pv_productivity(result_ac_energies_to_csv_df, path_export_hourly)
# Carica il file CSV orario def genera_giornaliero():
df = pd.read_csv('files/gen_pv/output_gen_pv_hourly.csv', index_col=0, parse_dates=True) # 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 # Raggruppa per giorno e somma la produzione
df_daily = df.resample('D').sum() df_daily = df.resample('D').sum()
# Crea il grafico giornaliero # Crea il grafico giornaliero
fig = px.line( fig = px.line(
df_daily, df_daily,
x=df_daily.index, x=df_daily.index,
y='gen_pv_100_kWp', y='gen_pv_100_kWp',
title='Produttività Fotovoltaica Giornaliera', title='Produttività Fotovoltaica Giornaliera',
labels={'gen_pv_100_kWp': 'Energia [kWh]', 'index': 'Data'} labels={'gen_pv_100_kWp': 'Energia [kWh]', 'index': 'Data'}
) )
fig.show() fig.show()
# Raggruppa per mese e somma la produzione # Raggruppa per mese e somma la produzione
df_monthly = df.resample('M').sum() df_monthly = df.resample('M').sum()
df_monthly['Mese'] = df_monthly.index.strftime('%B %Y') # Nome mese e anno 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) # Estrai tutte le date disponibili (solo la parte di data, senza ora)
date_options = df.index.normalize().unique() date_options = df.index.normalize().unique()
# Crea una lista di grafici, uno per ogni giorno # Crea una lista di grafici, uno per ogni giorno
fig = go.Figure() fig = go.Figure()
for date in date_options: for date in date_options:
daily_data = df[df.index.normalize() == date] daily_data = df[df.index.normalize() == date]
fig.add_trace( fig.add_trace(
go.Scatter( go.Scatter(
@@ -135,12 +136,12 @@ for date in date_options:
) )
) )
# Rendi visibile solo il primo giorno all'avvio # Rendi visibile solo il primo giorno all'avvio
fig.data[0].visible = True fig.data[0].visible = True
# Crea i pulsanti per il menu a tendina # Crea i pulsanti per il menu a tendina
buttons = [] buttons = []
for i, date in enumerate(date_options): for i, date in enumerate(date_options):
visible = [False] * len(date_options) visible = [False] * len(date_options)
visible[i] = True visible[i] = True
buttons.append( buttons.append(
@@ -152,7 +153,7 @@ for i, date in enumerate(date_options):
) )
) )
fig.update_layout( fig.update_layout(
updatemenus=[ updatemenus=[
dict( dict(
active=0, active=0,
@@ -166,9 +167,8 @@ fig.update_layout(
title=f"Produttività Fotovoltaica Oraria - {date_options[0].date()}", title=f"Produttività Fotovoltaica Oraria - {date_options[0].date()}",
xaxis_title="Ora", xaxis_title="Ora",
yaxis_title="Energia [kWh]" yaxis_title="Energia [kWh]"
) )
fig.show()
fig.show()
if joePlaying: if joePlaying:
joe.terminate() joe.terminate()