1. Modi per salvare i grafici
Oggi non ci limiteremo a creare grafici belli, ma li trasformeremo in immagini fantastiche che puoi inserire nei tuoi report, presentazioni o album per i momenti tipo: "Guarda, l'ho fatto io!". Chissà, magari il tuo grafico diventerà virale sui social e finalmente avrai il tuo momento di gloria!
Come in ogni buon show di cucina, dove scegliamo una ricetta, iniziamo con una panoramica dei vari formati di file in cui è possibile salvare i grafici. Ogni formato ha le sue peculiarità, e capire questi dettagli ti aiuterà a scegliere il "piatto" giusto per il tuo "menu". Ecco alcuni di essi:
- PNG (Portable Network Graphics): uno dei formati più popolari per la grafica web. Offre una buona compressione senza perdita di qualità, trasparenza e ottimo supporto nella maggior parte delle applicazioni.
- PDF (Portable Document Format): ideale per l'integrazione nei documenti. È un formato vettoriale, quindi conserva la nitidezza dell'immagine durante lo zoom.
- SVG (Scalable Vector Graphics): un altro formato vettoriale, perfetto per il web. Supporta l'interattività e le animazioni.
- JPEG (Joint Photographic Experts Group): solitamente utilizzato per le foto, poiché presenta compressione con perdita di qualità, il che potrebbe non essere adatto per grafici con testo.
Ora che abbiamo capito quali opzioni abbiamo, passiamo al salvataggio dei grafici con la funzione savefig() della libreria Matplotlib.
Salvare i grafici con savefig()
Matplotlib rende il processo di salvataggio dei grafici praticamente indolore, come aggiornare il sistema operativo del tuo telefono (se tutto va secondo i piani). Vediamo come si fa.
import matplotlib.pyplot as plt
# Supponiamo di avere un grafico semplice
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
plt.plot(x, y, label='Numeri primi')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Grafico lineare dei numeri primi')
plt.legend()
# Salvataggio del grafico in un file
plt.savefig('primes.png')
Questo codice crea il file primes.png nella directory corrente. Tutto qui! Non è necessario imparare formule magiche o fare sacrifici agli dei digitali. Basta chiamare plt.savefig('percorso/nome file') invece di plt.show() ed è fatta!
2. Configurare le impostazioni di salvataggio
Certo, salvare un grafico non è abbastanza: vogliamo che sembri fantastico! Come dice il vecchio proverbio: "Se il grafico è brutto in qualità, nessuno lo noterà". O qualcosa del genere.
Impostare qualità e risoluzione dell'immagine
Per creare immagini di alta qualità, è possibile configurare il parametro dpi (dots per inch), che determina la densità dei pixel nell'immagine. Più alto è il valore, più dettagliata sarà l'immagine. Per il web solitamente bastano 72 dpi, mentre per la stampa servono 300 dpi o più.
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [10, 20, 15, 25, 30]
plt.plot(x, y)
# Salvataggio del grafico con alta risoluzione
plt.savefig("high_quality_plot.png", dpi=300)
plt.show()
Qui dpi=300 aumenta la qualità dell'immagine, rendendola più nitida, cosa particolarmente utile per report e stampa.
Salvare senza bordi e margini extra
Per impostazione predefinita, Matplotlib aggiunge margini attorno al grafico, cosa che non sempre è conveniente per l'inserimento nei report. Per salvare l'immagine senza margini, utilizza il parametro bbox_inches="tight".
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [5, 10, 15, 20, 25]
plt.plot(x, y)
# Salvataggio del grafico senza margini
plt.savefig("plot_no_borders.png", bbox_inches="tight")
plt.show()
Il parametro bbox_inches="tight" rimuove spazi inutili attorno al grafico, permettendo di ottenere un'immagine più compatta.
Impostare le dimensioni del grafico prima di salvarlo
A volte è necessario salvare un grafico con dimensioni specifiche (ad esempio, per presentazioni o pubblicazioni web). Con figure(figsize=(larghezza, altezza)) puoi definire la dimensione del grafico in pollici.
import matplotlib.pyplot as plt
# Impostare le dimensioni del grafico
plt.figure(figsize=(10, 5)) # 10 pollici di larghezza e 5 di altezza
x = [1, 2, 3, 4, 5]
y = [5, 10, 15, 20, 25]
plt.plot(x, y)
plt.title("Grafico con dimensioni personalizzate")
# Salvataggio del grafico con dimensioni specifiche
plt.savefig("custom_size_plot.png")
plt.show()
In questo esempio, il grafico viene salvato con dimensioni pari a 10x5 pollici. Puoi regolare le dimensioni in base ai requisiti specifici del report o della presentazione.
Parametri aggiuntivi di savefig()
transparent=True: Salva l'immagine con sfondo trasparente, utile per inserirla su sfondi colorati o trasparenti.pad_inches: Imposta margini aggiuntivi attorno al grafico. Usato insieme abbox_inches.format: Specifica il formato del file di salvataggio: pdf, png, jpg, ...
Se il parametro format non è specificato, il metodo savefig() cercherà di determinarlo in base al nome del file.
# Salvataggio del grafico con impostazioni personalizzate
plt.savefig('primes_high_res', dpi=300, pad_inches='tight', format='png', transparent=True)
Ora il tuo grafico sarà così nitido che chiunque lo guarderà dirà subito: "Wow, si vede che sapevi cosa stavi facendo!"
3. Esempi di salvataggio
Di solito abbiamo molti esempi che possiamo utilizzare per testare e fare debug. Questo ci permette di capire come i diversi parametri influenzano il risultato finale.
Salvare in formato PDF
Se hai bisogno di integrare un grafico in un report o una presentazione, il formato PDF è perfetto. Le sue proprietà vettoriali permettono di ridimensionare l'immagine senza perdere qualità.
plt.savefig('primes.pdf', bbox_inches='tight')
Salvare in formato vettoriale SVG
SVG è ottimo per pagine web o plugin con animazioni, grazie alle sue proprietà che consentono di aggiungere interattività.
plt.savefig('primes.svg', bbox_inches='tight')
Salvare in formato JPEG
Se il tuo grafico contiene principalmente immagini anziché linee e testo nitidi, il formato JPEG potrebbe essere utile.
plt.savefig('primes.jpg', quality=95)
Consigli utili
- Nome del file: Scegli nomi chiari e descrittivi per i file, così sarà più facile trovarli e riutilizzarli.
- Controllo qualità: Prima di includere un grafico nel report, visualizzalo sullo schermo per assicurarti che la qualità sia adeguata.
- Uso del fondo trasparente: Utile per creare grafici per presentazioni o siti web, dove il grafico potrebbe sovrapporsi a uno sfondo colorato.
Problemi comuni
Durante il salvataggio dei grafici possono verificarsi errori, proprio come quando tenti di aggiornare i driver della stampante. Un problema comune è la funzione savefig() non funzionante in ambienti come Jupyter Notebook. Questo accade perché i grafici in ambienti interattivi possono solo essere visualizzati, non salvati. In questo caso, puoi usare il metodo plt.close() per chiudere il grafico dopo averlo salvato.
GO TO FULL VERSION