Seaborn - Grafici categoriali a più pannelli

I dati categoriali possono essere visualizzati utilizzando due grafici, è possibile utilizzare le funzioni pointplot()o la funzione di livello superiore factorplot().

Factorplot

Factorplot disegna un grafico categoriale su una FacetGrid. Usando il parametro 'kind' possiamo scegliere la trama come boxplot, violinplot, barplot e stripplot. FacetGrid utilizza pointplot per impostazione predefinita.

Esempio

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('exercise')
sb.factorplot(x = "time", y = pulse", hue = "kind",data = df);
plt.show()

Produzione

Possiamo usare grafici diversi per visualizzare gli stessi dati usando il kind parametro.

Esempio

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('exercise')
sb.factorplot(x = "time", y = "pulse", hue = "kind", kind = 'violin',data = df);
plt.show()

Produzione

In factorplot, i dati vengono tracciati su una griglia di faccette.

Cos'è Facet Grid?

Facet grid forma una matrice di pannelli definiti per riga e colonna dividendo le variabili. A causa dei pannelli, un singolo grafico assomiglia a più grafici. È molto utile analizzare tutte le combinazioni in due variabili discrete.

Visualizziamo quanto sopra la definizione con un esempio

Esempio

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('exercise')
sb.factorplot(x = "time", y = "pulse", hue = "kind", kind = 'violin', col = "diet", data = df);
plt.show()

Produzione

Il vantaggio dell'utilizzo di Facet è che possiamo inserire un'altra variabile nel grafico. Il grafico sopra è diviso in due grafici basati su una terza variabile chiamata "dieta" utilizzando il parametro "col".

Possiamo creare molte sfaccettature di colonna e allinearle con le righe della griglia -

Esempio

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('titanic')
sb.factorplot("alive", col = "deck", col_wrap = 3,data = df[df.deck.notnull()],kind = "count")
plt.show()

produzione