Costruire un semplice grafico a colonne con pandas
Durante l’analisi dei dati capita molto spesso di volerli rappresentare graficamente al fine di comprendere meglio ciò con cui si sta lavorando. Il grafico a colonne è una delle rappresentazioni più semplici.
In questo breve articolo, vedremo come costruire un grafico a colonne usando la libreria pandas, quindi senza importare nessuna libreria specifica per la visualizzazione dei dati.
Primi passi
La prima cosa da fare per costruire un semplice grafico a colonne con pandas è importare le librerie di cui abbiamo bisogno
import pandas as pd import numpy as np
In secondo luogo, andremo a dare un’occhiata al nostro dataframe. Per questo esempio utilizzeremo un resoconto di spese. Ecco qui le prime 10 righe:
Grafico a colonne verticali
In questo esempio, immaginiamo di voler capire quali tipologie di spesa sono le più importanti. Di conseguenza, dovremo sommare i valori della colonna “Somma”, raggruppandoli secondo le tipologie di spesa (colonna “Tipo”). In questo caso, ho scelto di creare una tabella pivot con pandas per raggruppare i dati nella maniera necessaria. Ecco qui brevemente il codice per replicare l’operazione:
df_1 = pd.pivot_table(df, index='Tipo', aggfunc=np.sum)
Adesso siamo pronti a costruire il nostro grafico a colonne verticali. Proviamo con la versione base:
df_1.plot.bar()
Ed ecco qui il risultato:
Questo risultato è sufficiente per comprendere al volo che le spese relative agli hotel sono le meno importanti. Tuttavia, questo grafico presenta qualche problema. Andiamo a vedere come apportare alcune migliorie.
Ruotare i nomi sull’asse delle X
I nomi sull'asse delle X risultano poco leggibili. Possiamo cambiare facilmente il loro angolo di rotazione:
df_1.plot.bar(rot=45)
df_1.plot.bar(rot=30)
df_1.plot.bar(rot=0)
Eliminare la legenda e aggiungere un titolo
Nel grafico visto qui sopra la legenda non ha alcuna utilità. Infatti è chiaro che ogni colonna si riferisce all’ammontare di ciascuna categoria di spesa. Inoltre, sarebbe opportuno inserire un titolo. Vediamo come fare:
df_1.plot.bar(rot=0, legend=False, title='Spese per categorie')
Cambiare le dimensioni
Avrai sicuramente notato che la distanza tra alcuni nomi sull’asse delle X non è ottimale. Se vogliamo rendere il nostro grafico più leggibile, possiamo aumentare le sue dimensioni. Questo viene fatto utilizzando l’argomento figsize:
df_1.plot.bar(rot=0, legend=False, title='Spese per categorie', figsize=(8,4))
Adesso il nostro grafico è più largo e i nomi sull’asse delle X non si accavallano più.
Personalizzare i colori
Il colore blu del nostro grafico è quello di default. Possiamo tuttavia cambiarlo. Per semplicità d’uso, possiamo usare la nomenclatura riportata in questa pagina web. Ecco un paio di esempi:
#esempio 1 df_1.plot.bar(rot=0, legend=False, title='Spese per categorie', figsize=(8,4), color='cornflowerblue') #esempio 2 df_1.plot.bar(rot=0, legend=False, title='Spese per categorie', figsize=(8,4), color='sandybrown')
Grafico a colonne orizzontali
In alcuni casi, possiamo volere costruire un grafico a colonne come negli esempi riportati qui sopra, ma con un orientamento orizzontale. In questo caso, pandas ci permette di farlo in maniera molto semplice: ci basta cambiare df_1.plot.bar in df_1.plot.barh.
Vediamo come farlo, inserendo qualche piccola variazione alle dimensioni del grafico e al suo colore:
df_1.plot.barh(rot=0, legend=False, title='Spese per categorie', figsize=(7,4), color='teal')
Conclusione
Come visto in questo esempio, costruire un grafico a colonne è davvero molto semplice e può aiutarci a comprendere meglio i nostri dati in una fase successiva alla loro analisi. Tuttavia, alcune operazioni intermedie possono essere necessarie, come la creazione di una tabella pivot, la rimozione dei valori nulli (se presenti) o cambiare l’indice del nostro dataframe.