rendiamola una funzione grazie
This commit is contained in:
130
Fotovoltaico.py
130
Fotovoltaico.py
@@ -97,78 +97,78 @@ 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()
|
|
||||||
|
|
||||||
# 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
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
fig.show()
|
||||||
|
|
||||||
# Rendi visibile solo il primo giorno all'avvio
|
# Raggruppa per mese e somma la produzione
|
||||||
fig.data[0].visible = True
|
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 = []
|
# Estrai tutte le date disponibili (solo la parte di data, senza ora)
|
||||||
for i, date in enumerate(date_options):
|
date_options = df.index.normalize().unique()
|
||||||
visible = [False] * len(date_options)
|
|
||||||
visible[i] = True
|
# Crea una lista di grafici, uno per ogni giorno
|
||||||
buttons.append(
|
fig = go.Figure()
|
||||||
dict(
|
|
||||||
label=str(date.date()),
|
for date in date_options:
|
||||||
method="update",
|
daily_data = df[df.index.normalize() == date]
|
||||||
args=[{"visible": visible},
|
fig.add_trace(
|
||||||
{"title": f"Produttività Fotovoltaica Oraria - {date.date()}"}]
|
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.show()
|
||||||
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()
|
|
||||||
|
|
||||||
if joePlaying:
|
if joePlaying:
|
||||||
joe.terminate()
|
joe.terminate()
|
||||||
|
|||||||
Reference in New Issue
Block a user