Los datos categóricos también se pueden visualizar mediante gráficos de Seaborn. Algo que es especialmente útil cuando se desea explorar y mostrar los patrones y relaciones que existen entre las variables categóricas de un conjunto de datos. En esta entrada se mostrará algunas de las gráficas que existen para la creación de visualizaciones de datos categóricos en Seaborn.
Conjunto de datos de ejemplo
El conjunto de datos que se utilizará en esta entrada para la creación de las gráficas es tips. En donde recopilan las propinas recibidas en un restaurante en función de datos como el tamaño de la mesa, el día y otros datos de los comensales. Este conjunto de datos se incluye en el paquete Seaborn y se puede importar en un DataFrame de Pandas usando la función load_dataset()
.
import seaborn as sns # Cargar el conjunto de datos "tips" de Seaborn tips = sns.load_dataset("tips") # Imprimir los últimos registros del conjunto de datos print(tips.tail())
total_bill tip sex smoker day time size 239 29.03 5.92 Male No Sat Dinner 3 240 27.18 2.00 Female Yes Sat Dinner 2 241 22.67 2.00 Male Yes Sat Dinner 2 242 17.82 1.75 Male No Sat Dinner 2 243 18.78 3.00 Female No Thur Dinner 2
Gráfico de barras
Una de las opciones más habituales para representar datos categóricos son los gráficos de barras. En Seaborn, la función que implementa estos gráficos es barplot()
. Pudiendo utilizar esta función para mostrar la relación que existe entre las variables categóricas y numéricas. Por ejemplo, en el conjunto de datos de propinas se puede mostrar la relación entre la factura total (variable numérica) y el día de la semana (variable categórica).
# Gráfico de barras sns.barplot(data=tips, x="day", y="total_bill", errorbar=None)
En este ejemplo lo que se muestra en el eje y es el promedio, el estadístico que se muestra por defecto en esta función de Seaborn, de la factura en función del día de la semana. Observándose como este valor aumenta los sábados y domingos respecto a otros días de la semana. Nótese que, para simplificar la gráfica, se ha eliminado la barra de error que se muestra por defecto.
Si se desea profundizar en las opciones de esta función se puede consultar la entrada sobre las gráficas de barra que se ha publicado en la serie.
Gráfico de conteo
Los gráficos de conteo muestran la frecuencia de cada categoría en un conjunto de datos. Estos gráficos se pueden crear con barplot()
usando len
como estimador, aunque, dada su importancia, existe una función específica en Seaborn para crearlos: countplot()
. Para crear un gráfico de conteo solamente hay que pasar el conjunto de datos y la variable categórica que se desea mostrar.
# Gráfico de conteo sns.countplot(data=tips, x="day")
En este caso se puede ver el número de registros que hay en base al día de la semana. Observándose en esta ocasión una caída de las visitas el viernes respectó al resto de días.
Diagrama de caja y bigotes (boxplot)
Los diagramas de cajas y bigotes (boxplot) muestran la mediana y el rango intercuartil de los datos categóricos. Este tipo de gráficos son de gran utilidad cuando se desea visualizar la distribución y los valores atípicos de una variable numérica en función de una variable categórica. En Seaborn la función con la que se puede construir este tipo de gráficos es boxplot()
. Por ejemplo, se puede ver la evolución de la factura en función del día de la semana.
# Gráfico de boxplot sns.boxplot(data=tips, x="day", y="total_bill")
Al igual que en la gráfica de barras aquí también se puede observar como la factura media crece los fines de semana, aunque en este caso se pueden ver también los valores atípicos y la distribución de los datos. El fin de semana también parece que hay una mayor variabilidad en cuanto a la cuantía de la factura total.
Gráfico de violín
Los gráficos de violín combinan un gráfico de barras y un gráfico de densidad para representar la distribución de datos categóricos. Seaborn proporciona la función violinplot()
para trazar gráficos de violín.
# Gráfico de violín sns.violinplot(data=tips, x="day", y="total_bill")
Estos gráficos muestran un mayor de detalle de la distribución de datos que se observa en la factura total en función del día de la semana.
Gráfico de dispersión de enjambre (swarmplot)
En Seaborn también se pueden encontrar los gráficos de dispersión de enjambre o gráfico de enjambre (swarmplot) que muestra los puntos individuales para cada una de las observaciones de datos categóricos. Distribuyendo estos a lo largo del eje categórico para evitar su superposición. Generando así unas gráficas de dispersión que se asemejan a los gráficos de violín. Estos gráficos se pueden crear con la función swarmplot()
indicando el conjunto de datos, la variable categórica y la variable numérica.
# Gráfico de swarmplot sns.swarmplot(data=tips, x="day", y="total_bill")
Es importante tener en cuenta que los gráficos de dispersión de enjambre pueden no ser adecuados para conjuntos de datos muy grandes, ya que podría existir una superposición significativa de puntos en el gráfico.
Conclusiones
En esta entrada se han visto algunas de las herramientas que existen para crear visualizaciones de datos categóricos en Seaborn. Para lo que se ha usado gráficos de barra, gráficos de conteo, diagramas de caja y bigotes, gráficos de violín y gráficos de dispersión de enjambre.
Deja una respuesta