from pathlib import Path import matplotlib import matplotlib.pyplot as plt import pandas as pd def main() -> None: percorso_csv = Path("dataset/run_0001.csv") if not percorso_csv.exists(): raise FileNotFoundError( "File CSV non trovato. Esegui prima `python simulate.py`." ) df = pd.read_csv(percorso_csv) fig_temperature = plt.figure() plt.plot(df["tempo_s"], df["T_vera_lato_sensore_C"], label="Temperatura vera lato interno") plt.plot(df["tempo_s"], df["T_misurata_sensore_C"], label="Temperatura misurata dal sensore") plt.xlabel("Tempo [s]") plt.ylabel("Temperatura [°C]") plt.title("Sensore fisso, sorgenti in moto") plt.legend() plt.grid(True) plt.tight_layout() fig_flusso = plt.figure() plt.plot(df["tempo_s"], df["flusso_termico_sorgente_W_m2"]) plt.xlabel("Tempo [s]") plt.ylabel("Flusso termico efficace [W/m²]") plt.title("Flusso termico nel punto x osservato dal sensore") plt.grid(True) plt.tight_layout() # Se il backend non è interattivo (nessun display o backend GUI # disponibile), plt.show() non aprirebbe nulla: si salvano i PNG. if matplotlib.get_backend().lower() == "agg": for fig, nome in [(fig_temperature, "temperature"), (fig_flusso, "flusso")]: percorso = Path("dataset") / f"grafico_{nome}.png" fig.savefig(percorso, dpi=150) print(f"Backend non interattivo: grafico salvato in {percorso}") return plt.show() if __name__ == "__main__": main()