CodeGym /Corsi /Python SELF IT /Salvare i grafici come immagini per report e presentazion...

Salvare i grafici come immagini per report e presentazioni

Python SELF IT
Livello 42 , Lezione 1
Disponibile

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.

Python

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ù.

Python

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".

Python

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.

Python

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 a bbox_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.

Python

# 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à.

Python

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à.

Python

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.

Python

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.

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION