Il BoxPlot o diagramma scatola e baffi è una rappresentazione grafica che ci permette descrivere e confrontare velocemente una caratteristica di determinati campioni di dati.
Alla fine dell’articolo trovate come realizzare in Python con Matplotlib, Seaborn questi grafici.
Il BoxPlot si presenta come un rettangolo diviso in due parti (non necessariamente uguali) e dei “baffi” che nella figura sono i due segmenti in giallo.
Questi baffi identificano un intervallo minimo e massimo della distribuzione.
Tutti i valori che cadono oltre questi due limiti sono considerati valori anomali.
Perché utilizzare i box-plot?
Se per esempio volessimo confrontare la durata delle batterie di tre categorie di cellulari, se volessimo confrontare quanto spendono sul nostro e-commerce tre categorie di utenti (es. “Giovani” ,“Adulti Single” “Adulti Sposati”), il Box-plot ci garantirebbe una visualizzazione rapida e chiara di queste variabili.
Ovviamente quanto detto sopra è possibile anche attraverso gli istogrammi, ma il vantaggio di utilizzare un Box-Plot è vario:
- Possiamo identificare dove si colloca un determinato valore della nostra variabile
- Possiamo identificare subito i valori anomali (outliers)
- Possiamo confrontare facilmente il valore mediano della distribuzione
Ma nel concreto che significa?
Attraverso degli esempi quotidiani possiamo interpretare i precedenti punti come segue:
- Questa settimana ho corso 10km in 60 minuti, come si colloca rispetto ai risultati delle settimane passate?
- La pressione del sangue del paziente è a 55mmHg è un valore anomalo (si lo è) oppure non devo preoccuparmi?
- Voglio confrontare in una prima analisi mediamente quanto dormono le persone che fanno sport da quelle che non fanno sport
Il Box Plot garantisce una visualizzazione chiara della distribuzione di una variabile che caratterizza uno o più campioni oggetto di analisi.
Come costruire un box plot?
La costruzione di questo grafico è molto facile, ma è necessario conoscere il concetto di quartile (ne ho parlato in questo articolo “Calcolare il quantile di un campione con Numpy o Pandas”)
I lati estremi del nostro rettangolo corrispondono al primo e terzo quartile, mentre il segmento tra questi due rappresenta il secondo quartile. E’ importante evidenziare che il secondo quartile coincide con il valore della mediana della nostra distribuzione.
Altro punto importante è l’ampiezza tra il primo e terzo quartile, che definisce “the interquartile range” o scarto interquartile. Questa ampiezza, che può essere più o meno estesa, è un modo estremamente intuitivo e visuale per vedere quanto i valori si disperdano dal valore mediano.
Qui sotto invece potete vedere un confronto rapido tra tre distribuzioni attraverso il BoxPlot e di come questo sarebbe un po’ più complesso attraverso i tre istogrammi.
Nello specifico il boxplot si presenta molto più versatile nel caso in cui si volesse valutare non la sigola distribuzione, ma una comparazione, ad esempio dei valori mediani o dei valori anomali, tra le tre.


Ricordo che l’obiettivo di un istogramma è visualizzare la frequenza di una determinata variabile sull’asse delle Y il cui valore è riportato sull’asse delle X.
Come Realizzare questi grafici in Python?
Di seguito troverai tutto il codice per poter riprodurre sul tuo Jupyter Notebook dei Boxplot in python. Per qualsiasi dubbio o chiarimento commenta liberamente il post.
Grazie per aver letto l’articolo, se lo hai trovato utile condividilo su Twitter e Linkedin.
Le occasioni nascono dalle piccole cose e grazie ad un un like puoi fare tantissimo.
Se c’è qualche errore o miglioramento scrivimi pure.
Un abbraccione
Andrea
Edit: Grazie a Roberto per avermi fatto notare dei Typo e suggerito rwidth=0.8, nei prossimi grafici e post lo applicherò


