Visualization VocabularyDataviz vocabulary
Diagram: alluvial diagram
Drawing: Adrien Taudière (CC0)
Explanatory diagram: alluvial diagram
Drawing: Adrien Taudière (CC0)
ggplot2 example: alluvial diagram
Adrien Taudière (CC0); R code ↓; data: gapminder (Bryan 2025) (CC BY 4.0)

chart

alluvial diagram

Blocks stacked at each stage of an ordered sequence, linked from one stage to the next by bands whose width encodes the count moving from one group to another.

Classification

  • chart
  • flows › ribbon flows
  • flow, change over time
  • the name evokes: nature

Channels

  • length; main: count of each group and each flow
  • area; secondary: count of each group and each flow
  • spatial region; main: date and group
  • color hue; secondary: starting group of the flow

Variants

Attestation and synonyms

Seminal references

R packages

R code of the ggplot2 example

library(ggplot2)
library(dplyr)
library(tidyr)
library(ggalluvial)
library(gapminder)

## Countries by life-expectancy band in 1952, 1977 and 2007. As in Rosvall &
## Bergstrom (2010), flows only join adjacent dates (geom_flow): each flow
## takes the color of the band it leaves, and a band receives as much as it
## sends.
bands <- gapminder |>
  filter(year %in% c(1952, 1977, 2007)) |>
  mutate(band = cut(lifeExp, c(0, 50, 65, Inf), right = FALSE,
                    labels = c("Under 50", "50 to 65", "Over 65"))) |>
  select(country, year, band)

p <- ggplot(bands, aes(x = factor(year), stratum = band, alluvium = country)) +
  geom_flow(aes(fill = band), aes.flow = "forward", width = 0.3, colour = "white",
            linewidth = 0.2, alpha = 0.9) +
  geom_stratum(width = 0.3, fill = "#535353", colour = "white", linewidth = 0.3) +
  geom_text(stat = "stratum", aes(label = after_stat(stratum)), colour = "white", size = 2.8) +
  scale_fill_manual(values = unname(lex_colors)) +
  scale_x_discrete(expand = expansion(add = 0.2)) +
  labs(title = "Six countries fell back below 50 years of life expectancy\nbetween 1977 and 2007",
       subtitle = "142 countries by life expectancy at birth; each flow takes the color\nof the band it leaves",
       x = NULL, y = "Countries",
       caption = "Data: gapminder (Bryan 2025)") +
  theme_lex_viz(grid = "", arrows = "") +
  theme(legend.position = "none", axis.text.x = element_text(face = "bold"))

Sources (7)

36 occurrences in the corpus; indexed by 1 book

Cite this entry

Stable addresshttps://dataviz.adrientaudiere.com/en-only/term/alluvial-diagram.html

ReferenceTaudière Adrien. 2026. alluvial diagram. In Visualization Vocabulary, version 1.0.0. IdEst. https://dataviz.adrientaudiere.com/en-only/term/alluvial-diagram.html

BibTeX
@incollection{taudiere2026-alluvial-diagram,
  author    = {Taudière, Adrien},
  title     = {alluvial diagram},
  booktitle = {Visualization Vocabulary},
  year      = {2026},
  version   = {1.0.0},
  publisher = {IdEst},
  url       = {https://dataviz.adrientaudiere.com/en-only/term/alluvial-diagram.html},
  note      = {CC0 1.0}
}

Page created on 2026-11-10. Text last changed on 2026-11-12. Images last changed on 2026-11-11. Numbers computed on 2026-10-22.