Timeline
Timeline
Qué es
Representación de eventos a lo largo de un eje temporal. Cada evento es un punto o bloque en el tiempo, permitiendo ver secuencias, duraciones y solapamientos.
Para qué sirve
Para narrar la historia de una serie de eventos, mostrar hitos de un proyecto o comunicar una secuencia histórica.
Cómo leerlo
Anatomía
La convención de anclar unidades de tiempo a una escala espacial horizontal, de izquierda a derecha, igual que un mapa ancla distancias, es una de las invenciones gráficas más antiguas de este catálogo: gráficos que ubicaban vidas de personajes históricos como barras horizontales sobre una escala de tiempo continua ya circulaban en el siglo XVIII, décadas antes del gráfico de barras o el de líneas moderno. La convención de que el tiempo fluye de izquierda a derecha —hoy tan obvia que nadie la nota— es una decisión de diseño, no una ley física ni un estándar universal. La anatomía distingue dos tipos de evento sobre ese mismo eje: el evento puntual, un marcador sobre una fecha exacta, algo que ocurrió en un instante; y el evento con duración, una barra entre dos fechas, con un principio y un fin, como la vida de una persona o la duración de una organización. Lo que hace que la escala funcione como escala, y no como una secuencia arbitraria de casillas, es que la misma distancia en cualquier punto del eje represente siempre la misma cantidad de tiempo.
Por qué funciona
Fundamento perceptivo
Convierte datos temporales en narrativa visual. El lector sigue el tiempo como una historia, lo que facilita la comprensión de causalidad y secuencia.
Errores comunes
No apto para eventos muy cercanos en el tiempo
Cuando varios eventos ocurren con pocos días o hasta horas de diferencia, sus marcadores en la línea de tiempo terminan superpuestos entre sí, y las etiquetas de texto chocan unas con otras. Agrupar eventos cercanos bajo un solo marcador expandible, o usar una escala de tiempo no lineal en esos tramos, evita el amontonamiento sin perder ningún evento.
Escala de tiempo inconsistente
Si el espacio entre eventos en la línea no es proporcional al tiempo real transcurrido entre ellos —por ejemplo, para que quepan más etiquetas—, el lector percibe erróneamente que los eventos están más o menos espaciados en el tiempo real de lo que realmente están. Una línea de tiempo debe mantener una escala temporal consistente de principio a fin, salvo que se indique explícitamente lo contrario.
Texto que no cabe junto al marcador
Descripciones largas de cada evento, forzadas en el espacio angosto entre un marcador y el siguiente, obligan a truncar el texto o a superponerlo con eventos vecinos. Alternar las etiquetas arriba y abajo de la línea, o usar un panel lateral que se expande al seleccionar un evento, son formas más confiables de dar espacio al texto sin saturar la línea principal.
Dónde se usa
Contextos de aplicación

Hitos de un proyecto
Cada entrega o decisión clave marcada sobre una línea de tiempo común.

Planificación de lanzamiento
Del brief inicial al lanzamiento, cada etapa con su fecha en orden.

Cronología de decisiones de un equipo
Reuniones y acuerdos ordenados en el tiempo para reconstruir el proceso.
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.
Receta documentada en la propia galería de matplotlib ("Timeline with lines, dates, and text"): vlines() como tallos desde la línea base y annotate() para el texto, alternando arriba/abajo.
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
# Receta documentada en la propia galeria de matplotlib ("Timeline with
# lines, dates, and text"): vlines() como tallos desde la linea base y
# annotate() para el texto, alternando arriba/abajo.
fig, ax = plt.subplots(figsize=(7.2, 2.4))
ax.axhline(0, color="#E4DCD4")
for d, e in zip(dates, eventos):
y = 1 if e["side"] == "up" else -1
ax.vlines(d, 0, y, color="#760D3E")
ax.plot(d, 0, "o", color="#760D3E")
ax.annotate(e["label"], (d, y), ha="center", va="bottom" if y > 0 else "top")
ax.xaxis.set_major_formatter(mdates.DateFormatter("%d %b"))
ax.get_yaxis().set_visible(False)
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.
Tres plebiscitos, tres resultados distintos
Resultados de los plebiscitos constitucionales chilenos, 2020-2023.
Gráficos relacionados