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:

Immagine 1

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:

Immagine 2

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)

Immagine 2

Immagine 3

Immagine 4

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')

Immagine 5

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))

Immagine 6

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')

Immagine 7 (esempio 1)

Immagine 8 (esempio 2)

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')

Immagine 9

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.