From c4e71a26767c294fbf90eb82a85de1af79e56bf0 Mon Sep 17 00:00:00 2001 From: Davide Grilli Date: Sun, 5 Jul 2026 19:21:00 +0200 Subject: [PATCH] Usa il backend Qt per i grafici e salva PNG quando non interattivo Aggiunge PySide6 alle dipendenze cosi' matplotlib seleziona il backend qtagg (WSLg mostra le finestre); senza tkinter/Qt ripiegava su agg e plt.show() non apriva nulla. Se il backend resta non interattivo, plot_csv.py salva i grafici come PNG in dataset/ invece di non mostrare niente. Etichetta della legenda aggiornata al lato interno. Co-Authored-By: Claude Fable 5 --- plot_csv.py | 20 +++++++++++++++----- requirements.txt | 1 + 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/plot_csv.py b/plot_csv.py index 7674ddd..287a869 100644 --- a/plot_csv.py +++ b/plot_csv.py @@ -1,5 +1,6 @@ from pathlib import Path +import matplotlib import matplotlib.pyplot as plt import pandas as pd @@ -13,24 +14,33 @@ def main() -> None: df = pd.read_csv(percorso_csv) - plt.figure() - plt.plot(df["tempo_s"], df["T_vera_lato_sensore_C"], label="Temperatura vera lato freddo") + 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, induttore in moto") + plt.title("Sensore fisso, sorgenti in moto") plt.legend() plt.grid(True) plt.tight_layout() - plt.show() - plt.figure() + 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() diff --git a/requirements.txt b/requirements.txt index 7bd7c44..08b9dbe 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,3 +2,4 @@ numpy scipy pandas matplotlib +PySide6