Violin Plot
Violin Plot
Qué es
Combinación de Box Plot y Density Plot: muestra la distribución completa de los datos con una curva de densidad espejada, más un resumen estadístico interno.
Para qué sirve
Para comparar distribuciones entre grupos cuando la forma de la distribución importa tanto como los estadísticos de resumen.
Cómo leerlo
Anatomía
La idea central es fusionar dos herramientas que normalmente viven por separado: el resumen de cinco números de una distribución (mínimo, cuartiles, mediana, máximo) y la traza de densidad, que muestra la forma completa de esa distribución. La silueta del violín es una estimación de densidad reflejada en espejo a ambos lados de un eje central —el ancho en cualquier punto de esa escala es proporcional a cuántos datos hay cerca de ese valor—, así que puede revelar bimodalidad o multimodalidad que un resumen de cinco números corriente no puede mostrar: dos grupos superpuestos se ven como dos ensanchamientos distintos, no como una sola caja homogénea. La caja resumen se dibuja intacta en el centro, sin perder ninguno de sus componentes: la caja es el rango intercuartil, la línea interna es la mediana, los bigotes llegan hasta 1.5 veces ese rango. Los dos lados del violín son matemáticamente idénticos —la duplicación no añade información nueva, solo facilita ver la forma completa de un vistazo.
Por qué funciona
Fundamento perceptivo
Revela la forma completa de la distribución (bimodalidad, asimetría) que el Box Plot oculta. Es más honesto con los datos.
Errores comunes
Requiere suficientes datos
necesita al menos 30-50 observaciones por grupo para que la estimación de densidad sea significativa, porque con pocos datos la curva resulta artificial.
Dónde se usa
Contextos de aplicación

Distribución de salarios por industria
La silueta muestra dónde se concentran los sueldos de cada rubro.

Puntuaciones por grupo experimental
Formas bimodales o sesgadas que un box plot no deja ver.

Resultados de mediciones de laboratorio
La densidad completa de cada lote de mediciones, lado a lado.
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.
Distribución del ingreso mensual líquido en Chile por categoría en el empleo, 2024 (INE, ESI 2024) —el mismo fundamento que el ejemplo principal de esta ficha: el INE solo publica media y mediana por categoría, así que cada curva es un ajuste log-normal a esas dos cifras reales, muestreado en 120 puntos deterministas (no aleatorios) por grupo. Cinco librerías (matplotlib, seaborn, plotnine, Plotly, Vega-Lite) calculan su propia densidad (KDE) nativa a partir de esos valores; las otras seis usan la misma función kde() manual, un kernel gaussiano con ancho de banda de Silverman. ax.violinplot() es nativo —calcula su propio KDE a partir de los valores individuales, pero colorear cada silueta por separado requiere iterar "bodies" a mano.
import matplotlib.pyplot as plt
# ax.violinplot() es nativo -- calcula su propio KDE (equivalente a
# gaussian_kde de scipy) a partir de los valores individuales, pero
# colorear cada silueta por separado requiere iterar "bodies" a mano.
parts = ax.violinplot(datasets, showmedians=True)
for body, color in zip(parts["bodies"], colores):
body.set_facecolor(color); body.set_alpha(0.82)
ax.set_xticks(range(1, len(grupos) + 1)); ax.set_xticklabels(grupos)
plt.show()No disponible en esta librería
No tiene un tipo de violín nativo ni una API de bajo nivel accesible desde fuera (como el renderItem de ECharts o los plugins de Chart.js) para dibujar un polígono de silueta a mano.
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