Density Plot
Density Plot
Qué es
Curva suavizada que estima la función de densidad de probabilidad de una distribución. Es un histograma con suavizado (KDE - Kernel Density Estimation).
Para qué sirve
Para visualizar la distribución de datos continuos con una curva suave, o para comparar distribuciones entre pocos grupos superpuestos.
Cómo leerlo
Anatomía
La curva suave que dibuja este gráfico es una estimación de densidad kernel, formalizada de manera independiente por más de un investigador de estadística a mediados del siglo XX. La idea: centrar una pequeña curva suave (el "kernel", casi siempre una campana gaussiana) sobre cada dato individual, y sumar todas esas curvas para obtener una superficie continua, en vez de la superficie escalonada y dependiente del ancho de bin de un histograma. El ancho de banda de cada kernel —no su forma— es el parámetro que más cambia el resultado: muy angosto revela ruido falso, muy ancho esconde modas reales, el mismo dilema que el ancho de bin en un histograma.
Por qué funciona
Fundamento perceptivo
Las curvas superpuestas con transparencia son más fáciles de comparar que histogramas superpuestos. La forma continua facilita la lectura de la distribución.
Errores comunes
Curva más allá del rango real
puede extenderse fuera de los datos reales (sobre todo en los bordes), y como el ancho de banda afecta la suavidad, documenta siempre el valor usado.
Dónde se usa
Contextos de aplicación

Distribución de alturas en una población
Una curva suave en vez de barras: la forma general de los datos.

Antes y después de una intervención
Dos curvas superpuestas muestran si la distribución completa se movió.

Concentración de resultados de un examen
Dónde se acumulan los puntajes y qué tan larga es cada cola.
Cómo construirlo
El mismo gráfico, en 11 librerías open source
Cada librería resuelve las mismas decisiones de diseño, como la escala, el espaciado entre barras o la inserción de la etiqueta de valor, de un modo distinto. Algunas las automatizan; otras las dejan explícitas en el código, a criterio de quien lo escribe. Comparar once implementaciones con los mismos datos y el mismo color de marca aísla esa diferencia, que de otro modo queda oculta detrás de estilos visuales distintos.
Temperatura media diaria en tres ciudades chilenas, 2023 completo (misma fuente que el ejemplo real de la ficha: DGAC/DMC vía Portal de Datos Abiertos del Estado de Chile). Cada curva es una estimación de densidad (KDE) sobre los valores diarios de todo el año. Tres librerías Python (seaborn, plotnine, y matplotlib apoyada en scipy) calculan la densidad de forma nativa o casi nativa; Vega-Lite es la única con un transform "density" propio; las siete restantes usan la misma función kde() manual, un kernel gaussiano con ancho de banda de Silverman. Sin función kde nativa propia: se apoya en scipy.stats.gaussian_kde para calcular la densidad de cada ciudad.
import matplotlib.pyplot as plt
from scipy.stats import gaussian_kde
import numpy as np
# Sin funcion kde nativa propia: se apoya en scipy.stats.gaussian_kde
# (parte del stack cientifico habitual, no una funcion manual como en
# D3/ECharts/Bokeh) para calcular la densidad de cada ciudad.
xs = np.linspace(-8, 28, 200)
for ciudad, valores, color in datos:
densidad = gaussian_kde(valores)(xs)
ax.fill_between(xs, densidad, color=color, alpha=0.32)
ax.plot(xs, densidad, color=color, linewidth=2, label=ciudad)
plt.show()Herramientas para construirlo
No-code, desktop y plataformas web, con su licencia visible, abierta o comercial.
Términos relacionados
Con datos reales
Ejemplos de uso.
Gráficos relacionados