Timeline

Timeline

Categoría Evolución

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.

Huincha de medir amarilla extendida en línea recta con marcas y números a intervalos regulares: la anatomía de un eje de timeline, una línea con marcas equidistantes que representan intervalos

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
01

Hitos de un proyecto

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

Planificación de lanzamiento
02

Planificación de lanzamiento

Del brief inicial al lanzamiento, cada etapa con su fecha en orden.

Cronología de decisiones de un equipo
03

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.

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

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.

No-code
Flourish FreemiumDatawrapper FreemiumObservable Freemium
JavaScript
TimelineJS Open SourceD3.js Open SourceECharts Open Source
Python
Plotly Open Source

Con datos reales

Ejemplos de uso.

Tres plebiscitos, tres resultados distintos

Resultados de los plebiscitos constitucionales chilenos, 2020-2023.

25 oct 2020Plebiscito de entradaApruebo 78,3%4 sep 2022Plebiscito de salidaRechazo 61,9%17 dic 2023Segundo plebiscitoEn contra 55,8%

Fuente: SERVEL, resultados oficiales de cada plebiscito