Skip to content
Tutoriales
Seaborn
How to Create Custom Distribution Plots with Seaborn Displot

Cómo crear gráficos de distribución personalizados con la función displot de Seaborn

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

  1. ¿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.

  1. ¿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.

  1. ¿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.