Seaborn - Distribución de observaciones

En los gráficos de dispersión categóricos que tratamos en el capítulo anterior, el enfoque se vuelve limitado en la información que puede proporcionar sobre la distribución de valores dentro de cada categoría. Ahora, yendo más allá, veamos qué puede facilitarnos la realización de comparaciones en categorías.

Diagramas de caja

Boxplot es una forma conveniente de visualizar la distribución de datos a través de sus cuartiles.

Los diagramas de caja suelen tener líneas verticales que se extienden desde las cajas y que se denominan bigotes. Estos bigotes indican variabilidad fuera de los cuartiles superior e inferior, por lo tanto, los diagramas de caja también se denominan comobox-and-whisker trama y box-and-whisker diagrama. Cualquier valor atípico en los datos se representa como puntos individuales.

Ejemplo

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

Salida

Los puntos en la gráfica indican el valor atípico.

Tramas de violín

Los gráficos de violín son una combinación del gráfico de caja con las estimaciones de densidad del núcleo. Por lo tanto, estos gráficos son más fáciles de analizar y comprender la distribución de los datos.

Usemos el conjunto de datos de sugerencias llamado para aprender más sobre las tramas de violín. Este conjunto de datos contiene la información relacionada con los consejos dados por los clientes en un restaurante.

Ejemplo

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

Salida

Los valores de los cuartiles y bigotes del diagrama de caja se muestran dentro del violín. Como la trama del violín usa KDE, la parte más ancha del violín indica que la densidad más alta y la región estrecha representa una densidad relativamente más baja. El rango intercuartil en el diagrama de caja y la porción de mayor densidad en kde caen en la misma región de cada categoría de diagrama de violín.

El gráfico anterior muestra la distribución de total_bill en cuatro días de la semana. Pero, además de eso, si queremos ver cómo se comporta la distribución con respecto al sexo, explorémosla en el siguiente ejemplo.

Ejemplo

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

Salida

Ahora podemos ver claramente el comportamiento de gasto entre hombres y mujeres. Podemos decir fácilmente que los hombres ganan más facturas que las mujeres mirando la trama.

Y, si la variable de tono tiene solo dos clases, podemos embellecer la trama dividiendo cada violín en dos en lugar de dos violines en un día determinado. Cualquiera de las partes del violín se refiere a cada clase en la variable de tono.

Ejemplo

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

Salida