Cómo crear gráficos de distribución personalizados con la función displot de Seaborn
Published on
La visualización de datos es un aspecto crucial del análisis de datos y del aprendizaje automático. Nos permite entender conjuntos de datos complejos y extraer ideas de ellos. Una de las bibliotecas más populares para la visualización de datos en Python es Seaborn, y una de sus herramientas más poderosas es la función displot
. Este tutorial te guiará a través del proceso de creación y personalización de gráficos de distribución utilizando la función displot
de Seaborn en Python.
displot
de Seaborn es una función versátil que puede crear diferentes tipos de gráficos de distribución, incluyendo histogramas, gráficos KDE y gráficos ECDF. Es una herramienta flexible y poderosa que puede manejar datos univariados y bivariados, lo que la convierte en una parte esencial del kit de herramientas de cualquier analista de datos. Ya seas un científico de datos experimentado o un principiante que recién comienza, comprender cómo usar displot
de manera efectiva puede mejorar significativamente tus habilidades de visualización de datos.
¿Qué es Displot en Seaborn?
displot
de Seaborn es una función diseñada para visualizar la distribución de datos. Es una función flexible que puede crear diferentes tipos de gráficos de distribución, incluyendo histogramas, gráficos KDE y gráficos ECDF. La función displot
forma parte del módulo relational
de Seaborn, que está diseñado para visualizar relaciones estadísticas entre variables.
La sintaxis básica de displot
es la siguiente:
seaborn.displot(data, x=None, y=None, hue=None, row=None, col=None, weights=None, kind='hist', rug=False, rug_kws=None, log_scale=None, legend=True, palette=None, hue_order=None, hue_norm=None, color=None, col_wrap=None, row_order=None, col_order=None, height=5, aspect=1, facet_kws=None, **kwargs)
La función displot
toma varios argumentos que te permiten personalizar la apariencia y el comportamiento de tus gráficos. Por ejemplo, puedes especificar el tipo de gráfico (histograma, KDE o ECDF), las variables a graficar (x e y) y la variable a utilizar para agrupar por color (hue).
Diferencia entre Distplot y Displot
Si bien distplot
y displot
son funciones de Seaborn utilizadas para visualizar distribuciones de datos, hay algunas diferencias clave entre ellas. La función distplot
era la función principal utilizada para crear histogramas y gráficos KDE en versiones anteriores de Seaborn. Sin embargo, distplot
ha sido obsoleta en versiones recientes de Seaborn, y ahora se recomienda utilizar la función displot
para crear gráficos de distribución.
La función displot
es más flexible y poderosa que distplot
. Puede manejar datos univariados y bivariados, y puede crear una mayor variedad de gráficos, incluyendo histogramas, gráficos KDE, gráficos ECDF y más. Además, displot
admite el uso de FacetGrid
, lo que te permite crear múltiples subgráficos en una sola figura.
¿Seaborn está obsoleta?
No, Seaborn no está obsoleta. Sin embargo, algunas funciones dentro de Seaborn, como distplot
, han sido obsoletas en versiones recientes. La función displot
es ahora la función recomendada para crear gráficos de distribución en Seaborn. Es más flexible y poderosa que distplot
, y está diseñada para funcionar bien con el resto del módulo relational
de Seaborn.
Ejemplos de Displot de Seaborn
Para comprender mejor cómo usar displot
, veamos algunos ejemplos. Comenzaremos importando las bibliotecas necesarias y cargando un conjunto de datos:
import seaborn as sns
import matplotlib.pyplot as plt
## Cargar el conjunto de datos de los pingüinos
penguins = sns.load_dataset("penguins")
Ejemplo 1: Histograma básico
El uso más simple de displot
es crear un histograma de una variable única. Así es como puedes crear un histograma de la variable flipper_length_mm
del conjunto de datos de los pingüinos:
sns.displot(data=penguins, x="flipper_length_mm")
plt.show()
Esto creará un histograma básico con una determinación automática del tamaño de los intervalos. Puedes personalizar el número de intervalos utilizando el parámetro bins
:
sns.displot(data=penguins, x="flipper_length_mm", bins=20)
plt.show()
Ejemplo 2: Histograma con KDE
También puedes agregar un gráfico de Estimación de Densidad Kernel (KDE) a tu histograma utilizando el parámetro kde
:
sns.displot(data=penguins, x="flipper_length_mm", kde=True)
plt.show()
El gráfico KDE es una versión suavizada del histograma y puede brindarte una mejor idea de la forma de la distribución de datos.
Ejemplo 3: Histograma de FacetGrid
Una de las características más poderosas de displot
es su capacidad para crear múltiples subgráficos en una sola figura utilizando FacetGrid
. Puedes crear un subgráfico separado para cada especie de pingüino de la siguiente manera:
sns.displot(data=penguins, x="flipper_length_mm", col="species")
plt.show()
Esto creará un histograma separado para cada especie de pingüino, lo que te permitirá comparar las distribuciones de longitud de aleta entre las especies.
Personalización de Displot de Seaborn
La función displot
de Seaborn ofrece una variedad de opciones para personalizar la apariencia de tus gráficos. Puedes controlar el color del gráfico, el tamaño y estilo de los intervalos, la apariencia del gráfico KDE y más.
Ejemplo 4: Personalización del color e intervalos
Para cambiar el color del gráfico, puedes utilizar el parámetro color
. Por ejemplo, para crear un histograma rojo, puedes hacer lo siguiente:
sns.displot(data=penguins, x="flipper_length_mm", color="red")
plt.show()
También puedes personalizar el tamaño y estilo de los intervalos utilizando los parámetros binwidth
y binrange
. Por ejemplo, para crear un histograma con intervalos de ancho 5 y rango de 150 a 250, puedes hacer lo siguiente:
sns.displot(data=penguins, x="flipper_length_mm", binwidth=5, binrange=(150, 250)) plt.show()
### Ejemplo 5: Personalización del gráfico KDE
Si estás usando un gráfico KDE, puedes personalizar su apariencia utilizando el parámetro `kde_kws`. Por ejemplo, para crear un gráfico KDE con una línea más gruesa y un color diferente, puedes hacer lo siguiente:
```python
sns.displot(data=penguins, x="flipper_length_mm", kde=True, kde_kws={"color": "green", "lw": 3})
plt.show()
Seaborn Displot con múltiples columnas
Una de las características más poderosas de la función displot
de Seaborn es su capacidad para manejar múltiples columnas de datos. Esto te permite crear visualizaciones complejas que pueden revelar patrones interesantes y relaciones en tus datos.
Ejemplo 6: Displot con dos variables
Para crear un displot
con dos variables, puedes especificar tanto los parámetros x
como y
. Por ejemplo, para crear un histograma bivariado de las variables flipper_length_mm
y body_mass_g
, puedes hacer lo siguiente:
sns.displot(data=penguins, x="flipper_length_mm", y="body_mass_g")
plt.show()
Esto creará un histograma 2D donde la intensidad del color representa la cantidad de puntos de datos en cada bin.
Ejemplo 7: Displot con hue
También puedes usar el parámetro hue
para agrupar tus datos por otra variable. Por ejemplo, para crear un histograma de flipper_length_mm
agrupado por species
, puedes hacer lo siguiente:
sns.displot(data=penguins, x="flipper_length_mm", hue="species")
plt.show()
Esto creará un histograma separado para cada especie, con colores diferentes para cada especie.
Preguntas frecuentes
- ¿Qué es la función
displot
en Seaborn?
La función displot
en Seaborn es una función flexible diseñada para visualizar la distribución de datos. Puede crear una variedad de gráficos de distribución, incluyendo histogramas, gráficos KDE y gráficos ECDF.
- ¿Cómo puedo personalizar la apariencia de mi
displot
?
Puedes personalizar la apariencia de tu displot
utilizando varios parámetros, como color
para el color del gráfico, binwidth
y binrange
para el tamaño y rango de los bins, y kde_kws
para la apariencia del gráfico KDE.
- ¿Puedo usar
displot
con múltiples columnas de datos?
Sí, displot
puede manejar múltiples columnas de datos. Puedes especificar tanto los parámetros x
como y
para crear un histograma bivariado, o usar el parámetro hue
para agrupar tus datos por otra variable.