Swimmer plot

Duración y eventos de cada paciente.

Definición

Un swimmer plot dibuja una barra por sujeto, todas arrancando del mismo cero: su propio día de inicio. Sobre cada barra se marcan los hitos que le ocurrieron, y una punta de flecha al final indica que el seguimiento sigue abierto. Se usa sobre todo en ensayos clínicos para enseñar duración de tratamiento y respuesta paciente a paciente.

La dosis alta no responde antes: responde más tiempo
Datos
category · value · series · continua · hito
Buena para
Comparar el recorrido de cada sujeto desde su inicio y ver cuándo le pasó cada cosa.
Evítala cuando
Cuando hay cientos de sujetos: las barras se vuelven ilegibles y lo útil es un resumen del grupo.
Se lee bien
Entre 2 y 23 elementos; dibuja hasta 67
Datos que faltan
Se niega a dibujar y dice qué valor falta.
Accesibilidad
Lector de pantalla: tabla de datos · respeta «reducir movimiento»

Forma de los datos

Qué columnas pide

ColumnaTipoPara qué
categorystringEl sujeto de cada carril: una barra por valor distinto, y su nombre es lo que rotula el eje vertical. Dos filas con el mismo nombre ABORTAN: aquí un sujeto es un carril, y la segunda barra taparía a la primera sin que nada lo cantara.
valuenumberEl tiempo observado del sujeto desde SU día 0, que es el largo de la barra. El ENCABEZADO de esta columna es lo que se escribe como título del eje X, así que la unidad la declara el dato («Seguimiento (meses)»), no la pieza. Cero o negativo ABORTA: una barra de longitud cero no es una barra corta, es un sujeto que desaparece de la lámina.
series · opcionalstringLa cohorte: lo ÚNICO que esta forma codifica en color, con la paleta del tema activo y hasta siete valores distintos (el techo que certifica `core/theme/aptitudSeries.ts` en dicromacia). Sin ella todas las barras salen del mismo color y no hay leyenda de cohortes.
continua · opcionalstringSi el corte de datos pilló al sujeto DENTRO: su barra acaba en punta de flecha. Se leen «sí/si/yes/true/1…» y «no/false/0…» y la celda vacía; cualquier otro valor ABORTA con las dos listas, porque tratar lo desconocido como «no» borraría la única marca que separa «se acabó» de «dejamos de mirar». Sin esta columna la lámina lo dice en su nota, en vez de callar.
hitonumberEl momento en que le pasó algo al sujeto, en la MISMA unidad que el seguimiento. Toda columna numérica que sobre es un tipo de hito y su encabezado es su nombre; la celda VACÍA significa que a ese sujeto no le pasó, que no es un hueco sino una afirmación. Hace falta al menos una (sin hitos esto es un `bar-horizontal`) y como mucho cinco, que es el vocabulario de glifos que la leyenda sabe espejar. Un hito fuera de la barra ABORTA con las dos cifras: es una columna cruzada o dos unidades mezcladas, no un caso raro.

Tamaños

Ancha por necesidad

Esta pieza necesita anchura para que cada rótulo quepa entero. El motor prefiere decirlo a apretarla.

A menos de 480 px sus rótulos no caben sin pisarse o recortarse, y el motor no la publica así. En el móvil se ve la versión ancha, a tamaño legible y sin recortar, dentro de un marco que se desliza.

Cuándo usarla

Tres preguntas antes de elegirla

¿Cada sujeto se mide desde su propio día 0?

Si los tramos importan en fechas de calendario, con inicios distintos, hace falta un cronograma.

Sí: quédate con swimmer plot

No: usa Diagrama de Gantt

¿Interesa seguir a cada sujeto por separado?

Si la pregunta es qué proporción del grupo sigue adelante con el tiempo, la curva de supervivencia lo resume.

Sí: quédate con swimmer plot

No: usa Curva de Kaplan-Meier

¿Lo que ocurre son instantes sueltos y no estados que duran?

Si cada sujeto pasa por fases con duración propia, una línea de estados las enseña como tramos.

Sí: quédate con swimmer plot

No: usa Línea de estados

Código

La misma pieza, con tus datos

import { getPreset, renderComposition } from 'visx-render/node';

const spec = await getPreset('swimmer');
spec.data.rows = misFilas; // category, value, hito
const { svg, warnings } = await renderComposition(spec);

También en React con Chart y prepareComposition. Guía para desarrolladores →

Dudas

¿Qué significa la punta de flecha?

Que el sujeto seguía dentro cuando se cortaron los datos. Separa «se acabó» de «dejamos de mirar», algo que un recuento a fecha fija no distingue.

¿Puedo dibujarlo sin hitos?

No. Necesita al menos una columna de hito en la misma unidad que el seguimiento; sin ella no dice nada que una barra no diga ya.

¿Qué se colorea?

Solo la cohorte, con hasta siete valores distintos. Cada columna numérica sobrante es un tipo de hito y su encabezado es su nombre.

¿Qué hace si faltan datos?

Se niega a dibujar y dice qué valor falta.

¿Cómo se ve en el móvil?

A menos de 480 px el motor no la compone sin pisar o cortar rótulos, y lo dice. En el móvil se ve la versión ancha, a tamaño legible, dentro de un marco que se desliza.

Relacionadas

Otras formas de responder «cómo cambia en el tiempo»

Guía para elegir: cómo cambia en el tiempo →