Bee Swarm
Beeswarm Plot
Qué es
Puntos individuales organizados para evitar solapamiento usando un algoritmo de 'enjambre'. Muestra cada observación individual mientras revela la distribución.
Para qué sirve
Para mostrar todos los puntos de datos individuales cuando el dataset no es demasiado grande (hasta ~500 puntos por grupo) y quieres evitar el resumen estadístico.
Cómo leerlo
Anatomía
El nombre y la técnica de empaquetado no tienen un origen puntual único documentado, pero sí implementaciones de referencia bien conocidas que popularizaron el algoritmo entre bioestadísticos —el ecosistema donde este gráfico se volvió estándar para mostrar puntos individuales de experimentos con pocas réplicas, en vez de esconderlos detrás de una barra de error. El objetivo del algoritmo es puramente geométrico: desplazar cada punto lo mínimo posible en el eje perpendicular al de la variable medida, solo lo necesario para que ningún punto se superponga a otro, preservando la posición exacta en el eje que sí importa. A diferencia de un jitter aleatorio, el resultado es determinístico y compacto, no ruidoso; y donde hay más puntos cerca en valor, el enjambre se ensancha, comunicando densidad como efecto secundario del propio algoritmo.
Por qué funciona
Fundamento perceptivo
No oculta ningún dato: cada punto es una observación real. Permite ver clusters, gaps y outliers que los resúmenes estadísticos esconden.
Errores comunes
Satura con muchos puntos
con más de 500-1000 por grupo empieza a ser lento y visualmente saturado, así que en datasets grandes combínalo con un Box Plot o Violin Plot superpuesto.
Dónde se usa
Contextos de aplicación

Puntuaciones individuales de una evaluación
Cada punto es una persona: se ve el patrón sin perder los casos.

Respuestas de una encuesta, una a una
El enjambre muestra concentraciones sin apilar ni ocultar puntos.

Análisis exploratorio de un dataset pequeño
Antes de resumir, ver todos los valores reales uno por uno.
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 máxima diaria en Santiago, 2023
Fuente: DGAC/DMC, vía Portal de Datos Abiertos del Estado de Chile
Temperatura máxima diaria en Santiago (estación Quinta Normal), 2023 completo —mismos datos que el ejemplo principal de esta ficha. Un bee swarm evita que los puntos se superpongan sin perder su posición vertical real: seaborn tiene un algoritmo de enjambre nativo propio (sns.swarmplot); las demás 10 librerías reutilizan las posiciones (x, y) precalculadas una sola vez con d3-force (forceY hacia el valor real, forceX hacia el centro, forceCollide para evitar solape). Sin algoritmo de enjambre propio: ax.scatter() dibuja directamente en las posiciones ya resueltas por d3-force.
import matplotlib.pyplot as plt
# Sin algoritmo de enjambre propio: ax.scatter() dibuja directamente
# en las posiciones (x, y) ya resueltas por d3-force.
ax.scatter(xs, ys, c=colores, s=18, alpha=0.75)
ax.axis("off")
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