Seaborn - Distribuzione delle osservazioni

Nei grafici a dispersione categoriali che abbiamo trattato nel capitolo precedente, l'approccio diventa limitato nelle informazioni che può fornire sulla distribuzione dei valori all'interno di ciascuna categoria. Adesso, andando oltre, vediamo cosa ci può facilitare con il confronto per categorie.

Box Plots

Boxplot è un modo conveniente per visualizzare la distribuzione dei dati attraverso i loro quartili.

I box plot di solito hanno linee verticali che si estendono dalle scatole che sono chiamate baffi. Questi baffi indicano la variabilità al di fuori dei quartili superiore e inferiore, quindi anche i Box Plots sono definiti comebox-and-whisker trama e box-and-whisker diagramma. Eventuali valori anomali nei dati vengono tracciati come singoli punti.

Esempio

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.swarmplot(x = "species", y = "petal_length", data = df)
plt.show()

Produzione

I punti sul grafico indicano il valore anomalo.

Trame di violino

Violin Plots è una combinazione del box plot con le stime della densità del kernel. Quindi, questi grafici sono più facili da analizzare e comprendere la distribuzione dei dati.

Usiamo il set di dati dei suggerimenti chiamato per saperne di più sulle trame del violino. Questo set di dati contiene le informazioni relative ai suggerimenti forniti dai clienti in un ristorante.

Esempio

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y = "total_bill", data=df)
plt.show()

Produzione

I valori di quartile e baffo del boxplot sono mostrati all'interno del violino. Poiché la trama del violino utilizza KDE, la porzione più ampia del violino indica la densità maggiore e la regione stretta rappresenta una densità relativamente inferiore. La gamma Inter-Quartile nel boxplot e la porzione a maggiore densità in kde rientrano nella stessa regione di ciascuna categoria di trama per violino.

Il grafico sopra mostra la distribuzione di total_bill nei quattro giorni della settimana. Ma, oltre a ciò, se vogliamo vedere come si comporta la distribuzione rispetto al sesso, esploriamola nell'esempio sottostante.

Esempio

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y = "total_bill",hue = 'sex', data = df)
plt.show()

Produzione

Ora possiamo vedere chiaramente il comportamento di spesa tra uomini e donne. Possiamo facilmente affermare che gli uomini fanno più conti delle donne guardando la trama.

E, se la variabile hue ha solo due classi, possiamo abbellire la trama dividendo ogni violino in due invece di due violini in un dato giorno. Entrambe le parti del violino si riferiscono a ciascuna classe nella variabile hue.

Esempio

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y="total_bill",hue = 'sex', data = df)
plt.show()

Produzione