¿Cómo hacer histogramas con gráficas de densidad con histplot de Seaborn?

Los histogramas son herramientas de visualización que representan la distribución de un conjunto de datos continuos. En un histograma, los datos se dividen en un conjunto de intervalos o contenedores (generalmente en el eje x) y el recuento de puntos de datos que caen en cada contenedor correspondiente a la altura de la barra sobre ese contenedor. Estos contenedores pueden o no tener el mismo ancho pero son adyacentes (sin espacios).  

Un gráfico de densidad (también conocido como gráfico de densidad kernel) es otra herramienta de visualización para evaluar distribuciones de datos. Se puede considerar como un histograma suavizado. Los picos de una gráfica de densidad ayudan a mostrar dónde se concentran los valores en el intervalo. Hay una variedad de técnicas de alisado. Kernel Density Estimation (KDE) es una de las técnicas utilizadas para suavizar un histograma.

Seaborn es una biblioteca de visualización de datos basada en matplotlib en Python. En este artículo, usaremos seaborn.histplot() para trazar un histograma con un gráfico de densidad.

Sintaxis: seaborn.histplot(data, x, y, hue, stat, bins, binwidth, discreto, kde, log_scale)

Parámetros:-

  • data: datos de entrada en forma de Dataframe o array Numpy
  • x, y (opcional): clave de los datos a posicionar en los ejes x e y respectivamente
  • tono (opcional): clave de datos semánticos que se asigna para determinar el color de los elementos de la trama
  • stat (opcional): conteo, frecuencia, densidad o probabilidad

Retorno: este método devuelve los ejes de matplotlib con el gráfico dibujado en él.

Ejemplo 1: generaremos los datos utilizando el método random.randn().

Python3

# Import necessary libraries
import seaborn as sns
import numpy as np
import pandas as pd
 
# Generating dataset of random numbers
np.random.seed(1)
num_var = np.random.randn(1000)
num_var = pd.Series(num_var, name = "Numerical Variable")
 
# Plot histogram
sns.histplot(data = num_var, kde = True)

Producción:

Por defecto , el parámetro kde de seaborn.histplot se establece en falso. Entonces, al establecer kde en verdadero, se calcula una estimación de la densidad del núcleo para suavizar la distribución y se dibuja una línea de trama de densidad.

Ejemplo 2: usemos el conjunto de datos de muestra, Penguins , de la biblioteca Seaborn en este ejemplo. Este conjunto de datos muestra las características (masa corporal, longitud de las aletas, sexo y longitud del pico) de diferentes especies de pingüinos en diferentes islas.

Python3

# Import necessary libraries
import numpy as np
import pandas as pd
import seaborn as sns
 
# Load dataset
penguins = sns.load_dataset("penguins")
 
# Plot histogram
sns.histplot(data = penguins, x = "body_mass_g", kde = True)

Producción:

También podemos visualizar la distribución de la masa corporal de múltiples especies en un solo gráfico. El parámetro matiz mapea la variable semántica ‘especies’. 

Python3

# Plot Histogram
sns.histplot(data = penguins, x = "body_mass_g", kde = True, hue = "species")

Producción:

Ejemplo 3: este ejemplo utiliza el conjunto de datos de muestra, Propinas , de la biblioteca Seaborn que registra las propinas recibidas por un servidor de restaurante. Consiste en la propina recibida, la factura total o el costo de la comida, el género del cliente, el tamaño de la fiesta del cliente, el día, la hora y si un fumador está presente en la fiesta o no. En lugar del conteo de puntos de datos, el histograma en este ejemplo está normalizado para que la altura de cada barra muestre una probabilidad. 

Python3

# Import necessary libraries
import numpy as np
import pandas as pd
import seaborn as sns
 
# Load dataset
tips = sns.load_dataset("tips")
 
# Plot histogram
sns.histplot(data = tips, x = "size", stat = "probability", discrete = True)

Producción:

Publicación traducida automáticamente

Artículo escrito por akshisaxena y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *