Seaborn - Gráficos categóricos de paneles múltiples

Los datos categóricos se pueden visualizar usando dos gráficos, puede usar las funciones pointplot(), o la función de nivel superior factorplot().

Factorplot

Factorplot dibuja un gráfico categórico en un FacetGrid. Usando el parámetro 'kind' podemos elegir la trama como boxplot, violinplot, barplot y stripplot. FacetGrid usa la gráfica de puntos de forma predeterminada.

Ejemplo

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

Salida

Podemos usar diferentes gráficos para visualizar los mismos datos usando el kind parámetro.

Ejemplo

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

Salida

En factorplot, los datos se trazan en una cuadrícula de facetas.

¿Qué es Facet Grid?

Facet grid forma una matriz de paneles definidos por fila y columna dividiendo las variables. Debido a los paneles, un solo gráfico se parece a varios gráficos. Es muy útil analizar todas las combinaciones en dos variables discretas.

Visualicemos la definición anterior con un ejemplo.

Ejemplo

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

Salida

La ventaja de usar Facet es que podemos ingresar otra variable en la gráfica. El gráfico anterior se divide en dos gráficos basados ​​en una tercera variable llamada 'dieta' utilizando el parámetro 'col'.

Podemos hacer muchas facetas de columna y alinearlas con las filas de la cuadrícula -

Ejemplo

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

salida