Strip Plot

Strip Plot

Categoría Distribución

Qué es

Puntos individuales alineados a lo largo de un eje (sin el algoritmo de enjambre del Bee Swarm). La versión más simple de mostrar datos individuales con posible solapamiento.

Para qué sirve

Para datasets pequeños donde quieres ver la distribución de datos individuales con mínima complejidad de implementación.

Cómo leerlo

Anatomía

El primo simple del bee swarm: en vez de calcular el desplazamiento mínimo necesario para separar cada punto de sus vecinos, un strip plot aplica una dispersión (jitter) aleatoria y uniforme en el eje perpendicular al que mide el dato, solo para evitar que los puntos se dibujen unos exactamente encima de otros. La técnica de sumar ruido aleatorio a datos discretos para revelar su distribución real —el mismo principio detrás del jitter— es un método general para exponer masas de puntos superpuestos en cualquier gráfico de dispersión con valores repetidos o redondeados. El resultado es más simple de generar que un bee swarm, pero puede superponer puntos por puro azar, ya que el desplazamiento no responde a ningún cálculo de colisión.

Granos de café derramados de una taza sobre una mesa, dispersos de forma genuinamente aleatoria y a veces superpuestos: la misma anatomía de un strip plot, donde la dispersión no sigue ningún cálculo de empaquetado, a diferencia de un bee swarm

Por qué funciona

Fundamento perceptivo

El formato más simple y directo para mostrar distribuciones individuales. Con jitter (ruido aleatorio horizontal) evita el solapamiento en datasets medianos.

Errores comunes

  • Puntos superpuestos sin jitter

    ocultan datos, así que agrega jitter o usa transparencia (con muchos datos, Bee Swarm o Violin Plot son mejores opciones).

Dónde se usa

Contextos de aplicación

Tiempos de respuesta individuales
01

Tiempos de respuesta individuales

Cada medición es un punto sobre su categoría, con jitter para no taparse.

Resultados de laboratorio por lote
02

Resultados de laboratorio por lote

Todos los valores de cada lote visibles, incluidos los atípicos.

Puntuaciones de evaluación por grupo
03

Puntuaciones de evaluación por grupo

La versión simple del bee swarm: puntos dispersos por categoría.

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.

Matplotlib License (estilo BSD)
Matplotlib: gráfico de barras

Mismos 200 valores sintéticos por grupo que usa Box Plot (misma fuente: cuartiles reales de Fundación Sol, ESI 2024), pero mostrados como puntos individuales en vez de una caja resumen. El desplazamiento horizontal (jitter) evita que los puntos se tapen entre sí; acá se usa la misma fórmula determinista (una congruencia lineal simple) en las 8 librerías sin una primitiva de jitter propia, para que el patrón de dispersión sea reproducible. Sin función de jitter propia: el desplazamiento horizontal se calcula a mano con la fórmula determinista compartida.

import matplotlib.pyplot as plt

def jitter(i):
    return (((i * 37 + 11) % 97) / 97) - 0.5

# Sin funcion de jitter propia: el desplazamiento horizontal se calcula
# a mano con la misma formula determinista que comparten las 11
# librerias sin una primitiva dedicada.
xm = [0 + jitter(i) * 0.7 for i in range(len(mujeres))]
xh = [1 + jitter(i) * 0.7 for i in range(len(hombres))]
fig, ax = plt.subplots(figsize=(6.4, 4.4))
ax.scatter(xm, mujeres, alpha=0.5, s=12, color="#760D3E")
ax.scatter(xh, hombres, alpha=0.5, s=12, color="#D2601F")
ax.set_xticks([0, 1]); ax.set_xticklabels(["Mujeres", "Hombres"])
plt.show()

Herramientas para construirlo

No-code, desktop y plataformas web, con su licencia visible, abierta o comercial.

No-code
Observable Freemium
JavaScript
D3.js Open Source
Python
Matplotlib Open SourceSeaborn Open SourceAltair Open Source
R
ggplot2 Open Source

Gráficos relacionados

Variantes y alternativas cercanas.