kuva streamgraph

Flowing stacked area chart with a displaced baseline (streamgraph).

Three baseline algorithms are available:

  • wiggle (default) — Byron & Wattenberg optimal: minimises visual motion in the silhouette.
  • symmetric — ThemeRiver: mirrors the stack around y = 0 at every x.
  • zero — standard stacked area from y = 0 with smooth Catmull-Rom curves.

Input: a tabular file with x, group, and value columns (long format — one row per group per x value).

FlagDefaultDescription
--x-col <COL>0X-axis column
--group-col <COL>1Group/category column
--y-col <COL>2Value column
--baseline <S>wigglewiggle, symmetric, zero
--order <S>inside-outinside-out, by-total, original
--linearoffStraight line segments instead of Catmull-Rom splines
--normalizeoffNormalise each column to 100 %
--strokeoffWhite separator strokes between streams
--no-labelsHide inline stream labels
--min-label-height <F>14.0Minimum band height (px) before label appears
--fill-opacity <F>0.85Fill opacity (0–1)
# Wiggle (default) — gut microbiome over 52 weeks
kuva streamgraph data.tsv

# Symmetric baseline — ThemeRiver style
kuva streamgraph data.tsv --baseline symmetric

# 100% normalised — show proportional composition
kuva streamgraph data.tsv --normalize \
    --y-label "Proportion (%)"

# Linear segments with strokes and legend instead of labels
kuva streamgraph data.tsv --linear --stroke --no-labels --legend ""

# Custom columns
kuva streamgraph counts.tsv \
    --x-col week --group-col phylum --y-col abundance \
    --title "Weekly phylum abundance"

See also: Shared flags — output, appearance, axes, log scale.