Description
A timeline arranges events or intervals along a single time axis, showing when things happened and how long they lasted. It is one of the oldest and most natural forms of information visualization — humans have been drawing timelines for centuries to make sense of history, plan projects, and communicate sequences. The core encoding maps temporal position to spatial position along a horizontal (or occasionally vertical) line.
Timelines come in two fundamental flavors: point timelines, where each event is a discrete moment marked by a dot or label, and span timelines (similar to Gantt charts), where each event has a start and end time represented by a bar or line segment. Many timelines combine both, placing point events alongside duration bars to create a rich temporal narrative.
The effectiveness of a timeline depends heavily on the density and distribution of events. Sparse, well-spaced events produce clean, readable displays. Dense or unevenly distributed events require careful handling — techniques like zooming, fisheye distortion, or layered detail levels help manage crowded regions. Color and vertical position can encode categorical dimensions (e.g., different event types or parallel tracks), adding richness without sacrificing the temporal backbone.
When to Use
- Showing the chronological order of historical events, milestones, or project phases
- Comparing the duration and overlap of multiple concurrent activities
- Providing narrative context for when key events occurred relative to each other
- Visualizing schedules, roadmaps, or biographical sequences
When NOT to Use
- When the focus is on quantitative change over time — use a line graph or area graph
- When events lack clear temporal information or ordering
- When there are hundreds of simultaneous events — the display becomes unreadable; use aggregation or filtering first
- For cyclical or recurring patterns — use a heatmap with day/hour structure
Anatomy
- Time axis: A linear scale representing time, usually horizontal with tick marks at regular intervals.
- Event markers: Dots, icons, or labels placed at specific points in time for instantaneous events.
- Duration bars: Horizontal bars spanning from start to end time for events with duration.
- Swim lanes: Parallel horizontal tracks grouping events by category (e.g., department, person, type).
- Labels and annotations: Text describing each event, positioned near its marker or bar.
- Era shading: Background color bands highlighting distinct periods or phases.
Variations
- Gantt chart: A project-management timeline where tasks are shown as duration bars, often with dependency arrows.
- Vertical timeline: Time flows top-to-bottom, common in storytelling and news articles.
- Multi-track timeline: Multiple swim lanes for parallel event streams (e.g., political, cultural, scientific events).
- Interactive timeline: Users can zoom, pan, and click events for detail — common in digital history projects.
- Spiral timeline: Time wraps around a spiral, useful for showing cyclical patterns within a longer arc.
Code Reference
// Observable Plot - horizontal timeline with event spans
Plot.plot({
marks: [
Plot.barX(events, {
y: "label",
x1: "start",
x2: "end",
fill: "category",
tip: true
}),
Plot.dot(milestones, {
y: "label",
x: "date",
fill: "red",
r: 5
})
],
x: { type: "time", label: "Date" },
y: { label: null },
color: { legend: true }
})