Una delle maniere migliori per comprendere un certo set di dati consiste nel visualizzarlo. Un istogramma รจ un tipo di grafico che puรฒ aiutarci a capire la distribuzione dei nostri dati.

In questa micro-lezione, impareremo a costruire un istogramma con Matplotlib, una libreria per la visualizzazione dei dati di Python.

Importiamo Matplolib

Per prima cosa, importiamo Matplotlib:

import matplotlib
import matplotlib.pyplot as pp

Ti consiglio anche di scrivere la seguente riga di codice per far sรฌ che i grafici siano raffigurati immediatamente, senza dover eseguire un comando specifico.

%matplotlib inline

Partiamo dal dataframe

Immaginiamo di avere un dataframe come questo qui:

Il nostro istogramma andrร  a rappresentare la distribuzione dei valori della colonna โ€œValore Account โ‚ฌโ€.

Costruiamo un istogramma semplice

Per costruire un istogramma semplice con Matplotlib non ci resta che scrivere la riga seguente:

df['Valore Account โ‚ฌ'].plot(kind='hist')

Ed ecco qui il risultato:

Ad una prima occhiata, siamo in grado di capire che la classe piรน rappresentata รจ quella degli account con un valore compreso tra 100โ‚ฌ e 200โ‚ฌ.

Aggiungere un tocco di colore

Per scegliere liberamente il colore del nostro grafico dobbiamo semplicemente specificare lโ€™argomento color:

# opzione 1
df['Valore Account โ‚ฌ'].plot(kind='hist', color='gold')

# opzione 2
df['Valore Account โ‚ฌ'].plot(kind='hist', color='aquamarine')

# opzione 3
df['Valore Account โ‚ฌ'].plot(kind='hist', color='indigo')

# opzione 4
df['Valore Account โ‚ฌ'].plot(kind='hist', color='coral')

# opzione 5
df['Valore Account โ‚ฌ'].plot(kind='hist', color='teal')

# opzione 6
df['Valore Account โ‚ฌ'].plot(kind='hist', color='crimson')

Ecco il risultato per ogni colore specificato qui sopra:

Scegliere il numero delle classi

Quante classi raffigureremo nel nostro istogramma? Di default, Matplotlib ne genera dieci. Tuttavia, possiamo cambiare il numero di classi generate specificando lโ€™argomento bins. Ecco qui alcuni esempi:

# 4 classi
df['Valore Account โ‚ฌ'].plot(kind='hist', color='teal', bins=4)

# 6 classi
df['Valore Account โ‚ฌ'].plot(kind='hist', color='teal', bins=6)

# 8 classi
df['Valore Account โ‚ฌ'].plot(kind='hist', color='teal', bins=8)

Ed ecco qui il risultato per ogni opzione:

Come possiamo osservare, un numero di classi basso contribuisce a visualizzare i dati in maniera generale, sintetica e uniforme.

Personalmente, per questo esempio preferisco avere 6 classi e dโ€™ora in poi continueremo a lavorare con questa variante del nostro istogramma.

Aggiungere la trasparenza

A volte puรฒ capitare di voler aggiungere delle altre misure al proprio istogramma (come faremo in seguito). In tal caso, ai fini di migliorare la leggibilitร  del grafico, possiamo specificare un livello di trasparenza con lโ€™argomento alpha:

df['Valore Account โ‚ฌ'].plot(kind='hist', color='teal', bins=6, alpha=0.6)

Quando il valore di alpha si avvicina a 1, allora il colore sarร  piรน opaco. Inversamente, quando alpha tende a zero, il livello di trasparenza aumenta.

Aggiungere la media e la mediana

Per una maggiore comprensione dei dati, una buona idea รจ quella di rendere visibili i valori della media e della mediana della nostra distribuzione.

Per rendere visibili questi valori, dobbiamo usare axvline() :

pp.axvline(df['Valore Account โ‚ฌ'].mean(), c='navy')

pp.axvline(df['Valore Account โ‚ฌ'].median(), c='navy', linestyle='--')

Per entrambe le linee, abbiamo deciso di specificare il colore (indicato da โ€œcโ€).

Nel caso della mediana, abbiamo scelto di raffigurare una linea tratteggiata. Invece, nel caso della media, abbiamo lasciato lo stile di default (riga piena). Diamo unโ€™occhiata al risultato:

Conclusione

Come abbiamo visto, costruire e personalizzare un istogramma con Matplotlib puรฒ aiutarci a comprendere la distribuzione dei dati di una colonna del nostro dataframe.

Ecco qui il codice completo per ottenere lโ€™istogramma analizzato in questa micro-lezione:

import pandas as pd
import numpy as np
import matplotlib
import matplotlib.pyplot as pp

%matplotlib inline

df['Valore Account โ‚ฌ'].plot(kind='hist', color='teal', bins=6, alpha=0.6)

pp.axvline(df['Valore Account โ‚ฌ'].mean(), c='navy')

pp.axvline(df['Valore Account โ‚ฌ'].median(),c='navy', linestyle='--')

Alla prossima micro-lezione ๐Ÿ‘‹