Grafico a torta in Python: crealo e personalizzalo con Pandas e Matplotlib
Impara a creare e migliorare grafici a torta usando le librerie Matplotlib e Pandas di Python. Scopri esempi di codice pratici e consigli di design essenziali per visualizzazioni chiare e leggibili.
I grafici a torta sono tra i più usati per visualizzare le proporzioni. Probabilmente li conosci già: immagina una grande torta, o una forma di Emmental, tagliata in fette di dimensioni diverse.
Python offre diversi modi per creare grafici a torta. In questo tutorial ci concentreremo su come crearli in Python usando Matplotlib e Pandas, due tra i pacchetti più popolari per l’analisi dei dati in Python. Struttureremo l’articolo per metodo, così puoi concentrarti sull’approccio e sulla sintassi che si integrano meglio nel tuo flusso di lavoro.
Oltre a questi metodi, forniremo alcuni consigli per migliorare troubleshooting, accessibilità e usabilità dei grafici a torta. Infine, prenderemo in considerazione anche grafici alternativi che in certi scenari possono essere più adatti dei grafici a torta.
Modi per creare grafici a torta in Python
Ti mostrerò due modi diversi per creare un grafico a torta in Python, e potrai decidere tu quale preferisci. Entrambi sono opzioni popolari e valide, quindi non puoi sbagliare.
Metodo 1: Grafici a torta con Matplotlib
Iniziamo analizzando come creare un grafico a torta con Matplotlib.
Per questa sezione analizzeremo i dati sui diversi corsi disponibili nel catalogo corsi di DataCamp, che puoi trovare qui. (Ho consultato il catalogo e contato il numero di corsi disponibili per ciascuna tecnologia, creando una tabella con queste informazioni.)
Come creare il grafico
Per creare il nostro primo grafico a torta con Matplotlib, possiamo usare la funzione plt.pie(). Useremo una lista con il numero di corsi disponibili per diverse tecnologie data e AI (ognuna rappresenta la dimensione della fetta), e una seconda lista con i nomi delle tecnologie, che includeremo nel grafico usando il parametro labels. In alternativa, possiamo usare plt.legend() per aggiungere una legenda separata.
Come al solito, non dimenticare di eseguire plt.show() alla fine del codice per visualizzare correttamente il grafico di Matplotlib.
import pandas as pd
import matplotlib.pyplot as plt
courses =[164,127,31,31,12,11]
labels =['Python','R','SQL','Power BI','Excel','ChatGPT']
dictionary ={'courses':courses,'labels':labels}
python_pie_chart_df = pd.DataFrame(dictionary)
plt.pie(x = python_pie_chart_df.courses, labels = python_pie_chart_df.labels)
plt.show()Offerto da
plt.pie(x = python_pie_chart_df.courses)
plt.legend(labels = python_pie_chart_df.labels, loc =[0.95,0.35])
plt.show()Offerto da
Inoltre, possiamo includere la percentuale di ciascuna fetta usando il parametro autopct. Nell’esempio seguente includiamo la dimensione delle fette con una cifra decimale.
plt.pie(x = python_pie_chart_df.courses, labels = python_pie_chart_df.labels, autopct='%1.1f%%')
plt.show()Offerto da
Come personalizzare il grafico
I grafici a torta in Matplotlib, così come le loro singole fette, sono altamente personalizzabili. Vediamo alcune opzioni offerte dalla funzione pie.plot().
Per cambiare il colore delle fette possiamo usare il parametro colors. Lo useremo per applicare al nostro grafico la palette di colori di DataCamp.
Decisamente meglio, giusto? Ma possiamo fare molto di più per personalizzare il nostro grafico a torta. Per esempio, possiamo regolare la distanza delle etichette e delle percentuali usando rispettivamente i parametri labeldistance e pctdistance, e scegliere un angolo di partenza del taglio con il parametro startangle.
Infine, immagina di dover fare una presentazione e voler mettere in evidenza i corsi su R. Un modo pratico per farlo è “esplodere” quella fetta usando il parametro explode, come segue:
explode =(0,0.1,0,0,0,0)# only "explode" the 2nd slice (i.e. 'R')
plt.pie(x = python_pie_chart_df.courses, labels = python_pie_chart_df.labels,
colors = datacamp_palette, autopct='%1.1f%%',
pctdistance=0.8, labeldistance=1.1,
startangle=180, explode=explode)
plt.show()Offerto da
Come salvare il grafico
Dopo aver creato il tuo grafico a torta, sei pronto a condividerlo con i collaboratori. Puoi farlo usando la funzione plt.savefig(), che prende come input il nome del file e permette di salvarlo in diversi formati, come .png, .jpg, .svg o .pdf. Inoltre, puoi usare dpi per cambiare la risoluzione dell’immagine.
Ecco un esempio di come salvare il grafico a torta in formato .jpg con 200 punti per pollice.
Ora che sai come creare un grafico a torta con Matplotlib, vediamo come funziona in Pandas.
Come creare il grafico
Pandas ha un metodo plot() che può essere usato per disegnare diversi tipi di grafici. Questo metodo funziona sia sugli oggetti DataFrame sia su quelli Series in Pandas. L’argomento kind nel metodo plot() ti aiuta a specificare il tipo di grafico. Nel nostro caso, puoi creare un grafico a torta usando kind ='pie'. Puoi anche aggiungere il parametro labelsper includere un nome in ogni fetta e il parametro autopctper aggiungere le percentuali di ciascuna fetta.
python_pie_chart_df['courses'].plot(kind='pie', labels=python_pie_chart_df['labels'], autopct='%1.1f%%')
plt.show()Offerto da
Come personalizzare il grafico
Il metodo plot() di Pandas è uno strumento per grafici rapidi, ma con opzioni di personalizzazione limitate. Fortunatamente, il metodo usa Matplotlib come backend, il che significa che puoi usare la sintassi di Matplotlib al di fuori del metodo per personalizzare la visualizzazione. Qui sotto trovi un esempio di come combinare Pandas e Matplotlib.
Per assicurarti che i tuoi grafici a torta vengano visualizzati correttamente, devi fornire a Matplotlib i dati giusti. Ciò significa applicare sempre tecniche di pulizia dei dati nel tuo dataframe, come eliminare i valori nulli con pd.dropna() e impostare i tipi di dato corretti per le colonne di input.
Inoltre, la personalizzazione è fondamentale per mostrare un grafico a torta efficace e incisivo. Tieni però presente che, se usi Pandas, personalizzazioni avanzate come l’explode potrebbero non essere supportate. Come già accennato, se hai bisogno di più controllo sul tuo grafico a torta, potresti dover aggiungere codice Matplotlib agli script.
Migliorare accessibilità e usabilità
Quando presenti i tuoi grafici a torta, attieniti alle buone pratiche.
Conosci il tuo pubblico: Come regola d’oro, empatizza sempre con il pubblico a cui è rivolta la visualizzazione. Significa avere una buona comprensione dell’area di competenza, del livello di conoscenze tecniche e degli interessi del tuo pubblico.
Elimina il superfluo: Per evitare visualizzazioni affollate e illeggibili, chiediti se ciò che stai includendo è rilevante per il pubblico e rimuovi il più possibile gli elementi non necessari. Nel caso dei grafici a torta, evita effetti 3D o ombre, che possono ostacolare l’interpretazione.
Attenzione ai font: Anche se può essere allettante usare font e dimensioni diverse, in generale limita la scelta a un solo font e non più di tre dimensioni. Segui la gerarchia tipografica mantenendo i titoli più grandi del corpo del testo e usa il grassetto per evidenziare elementi chiave e intestazioni.
Usa i colori con criterio: Il colore è uno degli aspetti più accattivanti di qualsiasi visualizzazione. Dedica quindi attenzione alla scelta della palette: mantieni coerenza tra le tue visualizzazioni e usa il colore in modo sistematico per distinguere gruppi, livelli di importanza e diverse gerarchie informative.
Test su altri dispositivi: È sempre una buona idea testare i tuoi grafici per vedere come appaiono su dispositivi diversi.
La visualizzazione dei dati può essere considerata un’arte. Intuizione e buon gusto fanno la differenza, ma è importante considerare anche la teoria. Per saperne di più sulle buone pratiche per una visualizzazione efficace, dai un’occhiata al nostro Data Storytelling & Communication Cheat Sheet. Inoltre, se lavori con dashboard, vale la pena leggere questo articolo sulle best practice per progettare dashboard.
Alternative ai grafici a torta
A dirla tutta, i grafici a torta sono tra i più criticati. È dimostrato che gli esseri umani non sono molto bravi a interpretare gli angoli. Possiamo illustrarlo con il grafico a torta usato in precedenza. Considera le fette di Excel e ChatGPT. Riesci a dire a colpo d’occhio quale ha l’angolo più grande?
Probabilmente no, ed è per questo che molti esperti di data visualization consigliano di usare altri grafici per rappresentare le proporzioni, soprattutto quando le categorie sono molte, come i grafici a barre e quelli a barre impilate, i treemap o anche i grafici a ciambella. Puoi approfondire queste alternative nel nostro articolo Types of Data Plots and How to Create Them in Python.
Conclusione
Complimenti per essere arrivato alla fine del tutorial. Python è un linguaggio estremamente versatile, che offre diverse librerie e approcci per creare grafici a torta. In questo tutorial abbiamo analizzato come farlo con Matplotlib e Pandas. Entrambi sono ugualmente adatti allo scopo e presentano notevoli somiglianze. L’idea non è scegliere l’uno o l’altro, ma usarli in modo intercambiabile a seconda delle tue esigenze e del flusso di lavoro.
Se vuoi saperne di più sui grafici a torta e, più in generale, sulla visualizzazione dei dati in Python, DataCamp può aiutarti. Scopri i nostri materiali dedicati e preparati a diventare un mago delle visualizzazioni!
Sono una data analyst freelance e collaboro con aziende e organizzazioni di tutto il mondo in progetti di data science. Sono anche un'insegnante di data science con oltre 2 anni di esperienza. Scrivo regolarmente articoli su temi legati alla data science in inglese e spagnolo, alcuni dei quali sono stati pubblicati su siti affermati come DataCamp, Towards Data Science e Analytics Vidhya. Come data scientist con un background in scienze politiche e diritto, il mio obiettivo è lavorare all'intersezione tra politiche pubbliche, diritto e tecnologia, sfruttando la forza delle idee per promuovere soluzioni e narrazioni innovative che ci aiutino ad affrontare le sfide urgenti, in primis la crisi climatica. Mi considero autodidatta, una persona in continuo apprendimento e una convinta sostenitrice dell'approccio multidisciplinare. Non è mai troppo tardi per imparare cose nuove.
FAQ
Che cos’è un grafico a torta e quando dovrei usarlo?⌄
Un grafico a torta è un tipo di grafico in cui un cerchio è suddiviso in settori, ognuno dei quali rappresenta una proporzione del totale. È quindi adatto a rappresentare proporzioni.
Come posso creare un grafico a torta in Matplotlib?⌄
Il modo più semplice per creare un grafico a torta con Matplotlib è la funzione plt.pie(), che include vari parametri di personalizzazione.
Come posso creare un grafico a torta in Pandas?⌄
Il modo più semplice per creare un grafico a torta con Pandas è il metodo Series.plot.(kind=’pie’). Consente una visualizzazione rapida sui DataFrame di Pandas ma offre opzioni di personalizzazione limitate rispetto a Matplotlib.
Quali sono le best practice per creare grafici a torta?⌄
Dovresti sempre seguire le best practice per creare le tue visualizzazioni. Ciò include mantenere i grafici a torta il più semplici possibile, evitare elementi non necessari, scegliere palette di colori intuitive e adattare il grafico al tuo pubblico.
Quali sono le principali limitazioni dei grafici a torta?⌄
Gli esseri umani non sono molto bravi a interpretare gli angoli, per questo molti esperti di visualizzazione consigliano di usare altri grafici per rappresentare le proporzioni, come i grafici a barre.
Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Impara le basi della statistica, tipo le misure di centralità e dispersione, le distribuzioni di probabilità e i test di ipotesi, senza bisogno di programmare!
I grafici a torta sono tra i più usati per visualizzare le proporzioni. Probabilmente li conosci già: immagina una grande torta, o una forma di Emmental, tagliata in fette di dimensioni diverse.
Python offre diversi modi per creare grafici a torta. In questo tutorial ci concentreremo su come crearli in Python usando Matplotlib e Pandas, due tra i pacchetti più popolari per l’analisi dei dati in Python. Struttureremo l’articolo per metodo, così puoi concentrarti sull’approccio e sulla sintassi che si integrano meglio nel tuo flusso di lavoro.
Oltre a questi metodi, forniremo alcuni consigli per migliorare troubleshooting, accessibilità e usabilità dei grafici a torta. Infine, prenderemo in considerazione anche grafici alternativi che in certi scenari possono essere più adatti dei grafici a torta.
Modi per creare grafici a torta in Python
Ti mostrerò due modi diversi per creare un grafico a torta in Python, e potrai decidere tu quale preferisci. Entrambi sono opzioni popolari e valide, quindi non puoi sbagliare.
Metodo 1: Grafici a torta con Matplotlib
Iniziamo analizzando come creare un grafico a torta con Matplotlib.
Per questa sezione analizzeremo i dati sui diversi corsi disponibili nel catalogo corsi di DataCamp, che puoi trovare qui. (Ho consultato il catalogo e contato il numero di corsi disponibili per ciascuna tecnologia, creando una tabella con queste informazioni.)
Come creare il grafico
Per creare il nostro primo grafico a torta con Matplotlib, possiamo usare la funzione
plt.pie(). Useremo una lista con il numero di corsi disponibili per diverse tecnologie data e AI (ognuna rappresenta la dimensione della fetta), e una seconda lista con i nomi delle tecnologie, che includeremo nel grafico usando il parametrolabels. In alternativa, possiamo usareplt.legend()per aggiungere una legenda separata.Come al solito, non dimenticare di eseguire
plt.show()alla fine del codice per visualizzare correttamente il grafico di Matplotlib.Inoltre, possiamo includere la percentuale di ciascuna fetta usando il parametro
autopct. Nell’esempio seguente includiamo la dimensione delle fette con una cifra decimale.Come personalizzare il grafico
I grafici a torta in Matplotlib, così come le loro singole fette, sono altamente personalizzabili. Vediamo alcune opzioni offerte dalla funzione
pie.plot().Per cambiare il colore delle fette possiamo usare il parametro
colors. Lo useremo per applicare al nostro grafico la palette di colori di DataCamp.Decisamente meglio, giusto? Ma possiamo fare molto di più per personalizzare il nostro grafico a torta. Per esempio, possiamo regolare la distanza delle etichette e delle percentuali usando rispettivamente i parametri
labeldistanceepctdistance, e scegliere un angolo di partenza del taglio con il parametrostartangle.Infine, immagina di dover fare una presentazione e voler mettere in evidenza i corsi su R. Un modo pratico per farlo è “esplodere” quella fetta usando il parametro
explode, come segue:Come salvare il grafico
Dopo aver creato il tuo grafico a torta, sei pronto a condividerlo con i collaboratori. Puoi farlo usando la funzione
plt.savefig(), che prende come input il nome del file e permette di salvarlo in diversi formati, come .png, .jpg, .svg o .pdf. Inoltre, puoi usaredpiper cambiare la risoluzione dell’immagine.Ecco un esempio di come salvare il grafico a torta in formato .jpg con 200 punti per pollice.
Puoi scoprire di più su come salvare correttamente le visualizzazioni nel nostro corso Introduction to Data Visualization with Matplotlib.
Metodo 2: Grafici a torta con Pandas
Ora che sai come creare un grafico a torta con Matplotlib, vediamo come funziona in Pandas.
Come creare il grafico
Pandas ha un metodo
plot()che può essere usato per disegnare diversi tipi di grafici. Questo metodo funziona sia sugli oggetti DataFrame sia su quelli Series in Pandas. L’argomentokindnel metodoplot()ti aiuta a specificare il tipo di grafico. Nel nostro caso, puoi creare un grafico a torta usandokind ='pie'. Puoi anche aggiungere il parametrolabelsper includere un nome in ogni fetta e il parametroautopctper aggiungere le percentuali di ciascuna fetta.Come personalizzare il grafico
Il metodo
plot()di Pandas è uno strumento per grafici rapidi, ma con opzioni di personalizzazione limitate. Fortunatamente, il metodo usa Matplotlib come backend, il che significa che puoi usare la sintassi di Matplotlib al di fuori del metodo per personalizzare la visualizzazione. Qui sotto trovi un esempio di come combinare Pandas e Matplotlib.Come salvare il grafico
Salvare grafici a torta in Pandas è esattamente come in Matplotlib, dato che Pandas si basa su Matplotlib.
Risoluzione dei problemi con i grafici a torta
Per assicurarti che i tuoi grafici a torta vengano visualizzati correttamente, devi fornire a Matplotlib i dati giusti. Ciò significa applicare sempre tecniche di pulizia dei dati nel tuo dataframe, come eliminare i valori nulli con
pd.dropna()e impostare i tipi di dato corretti per le colonne di input.Inoltre, la personalizzazione è fondamentale per mostrare un grafico a torta efficace e incisivo. Tieni però presente che, se usi Pandas, personalizzazioni avanzate come l’explode potrebbero non essere supportate. Come già accennato, se hai bisogno di più controllo sul tuo grafico a torta, potresti dover aggiungere codice Matplotlib agli script.
Migliorare accessibilità e usabilità
Quando presenti i tuoi grafici a torta, attieniti alle buone pratiche.
La visualizzazione dei dati può essere considerata un’arte. Intuizione e buon gusto fanno la differenza, ma è importante considerare anche la teoria. Per saperne di più sulle buone pratiche per una visualizzazione efficace, dai un’occhiata al nostro Data Storytelling & Communication Cheat Sheet. Inoltre, se lavori con dashboard, vale la pena leggere questo articolo sulle best practice per progettare dashboard.
Alternative ai grafici a torta
A dirla tutta, i grafici a torta sono tra i più criticati. È dimostrato che gli esseri umani non sono molto bravi a interpretare gli angoli. Possiamo illustrarlo con il grafico a torta usato in precedenza. Considera le fette di Excel e ChatGPT. Riesci a dire a colpo d’occhio quale ha l’angolo più grande?
Probabilmente no, ed è per questo che molti esperti di data visualization consigliano di usare altri grafici per rappresentare le proporzioni, soprattutto quando le categorie sono molte, come i grafici a barre e quelli a barre impilate, i treemap o anche i grafici a ciambella. Puoi approfondire queste alternative nel nostro articolo Types of Data Plots and How to Create Them in Python.
Conclusione
Complimenti per essere arrivato alla fine del tutorial. Python è un linguaggio estremamente versatile, che offre diverse librerie e approcci per creare grafici a torta. In questo tutorial abbiamo analizzato come farlo con Matplotlib e Pandas. Entrambi sono ugualmente adatti allo scopo e presentano notevoli somiglianze. L’idea non è scegliere l’uno o l’altro, ma usarli in modo intercambiabile a seconda delle tue esigenze e del flusso di lavoro.
Se vuoi saperne di più sui grafici a torta e, più in generale, sulla visualizzazione dei dati in Python, DataCamp può aiutarti. Scopri i nostri materiali dedicati e preparati a diventare un mago delle visualizzazioni!