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 <noreply@anthropic.com>
This commit is contained in:
+15
-5
@@ -1,5 +1,6 @@
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
|
import matplotlib
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
|
|
||||||
@@ -13,24 +14,33 @@ def main() -> None:
|
|||||||
|
|
||||||
df = pd.read_csv(percorso_csv)
|
df = pd.read_csv(percorso_csv)
|
||||||
|
|
||||||
plt.figure()
|
fig_temperature = plt.figure()
|
||||||
plt.plot(df["tempo_s"], df["T_vera_lato_sensore_C"], label="Temperatura vera lato freddo")
|
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.plot(df["tempo_s"], df["T_misurata_sensore_C"], label="Temperatura misurata dal sensore")
|
||||||
plt.xlabel("Tempo [s]")
|
plt.xlabel("Tempo [s]")
|
||||||
plt.ylabel("Temperatura [°C]")
|
plt.ylabel("Temperatura [°C]")
|
||||||
plt.title("Sensore fisso, induttore in moto")
|
plt.title("Sensore fisso, sorgenti in moto")
|
||||||
plt.legend()
|
plt.legend()
|
||||||
plt.grid(True)
|
plt.grid(True)
|
||||||
plt.tight_layout()
|
plt.tight_layout()
|
||||||
plt.show()
|
|
||||||
|
|
||||||
plt.figure()
|
fig_flusso = plt.figure()
|
||||||
plt.plot(df["tempo_s"], df["flusso_termico_sorgente_W_m2"])
|
plt.plot(df["tempo_s"], df["flusso_termico_sorgente_W_m2"])
|
||||||
plt.xlabel("Tempo [s]")
|
plt.xlabel("Tempo [s]")
|
||||||
plt.ylabel("Flusso termico efficace [W/m²]")
|
plt.ylabel("Flusso termico efficace [W/m²]")
|
||||||
plt.title("Flusso termico nel punto x osservato dal sensore")
|
plt.title("Flusso termico nel punto x osservato dal sensore")
|
||||||
plt.grid(True)
|
plt.grid(True)
|
||||||
plt.tight_layout()
|
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()
|
plt.show()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,3 +2,4 @@ numpy
|
|||||||
scipy
|
scipy
|
||||||
pandas
|
pandas
|
||||||
matplotlib
|
matplotlib
|
||||||
|
PySide6
|
||||||
|
|||||||
Reference in New Issue
Block a user