Skip to content

Streamgraph

How the mix shifts through the year.

Definition · Updated Nov 2, 2026

A streamgraph stacks several series around a centre line, so the total and each part's share flow as one shape. Thick and thin stretches show when each part grows or fades. Use it for a mix over a season, such as shipment modes or traffic sources.

Pay once. Every update included.

Live preview

Shipments by modeMonthly shipments in K by mode, 2026, stacked around a centre line; October: 47K in total (Road 23K, Sea 10K, Rail 8K, Air 6K).ROAD46%SEA28%RAIL16%OCT · 47KJANAPRJULOCTDEC
Shipments by mode
MonthRoad (K)Sea (K)Rail (K)Air (K)
Jan14962
Feb13862
Mar161073
Apr191283
May221584
Jun241774
Jul231964
Aug211864
Sep221585
Oct231086
Nov3010910
Dec279812

Sample data: shipments by four modes, January to December, October at 47K

Size
Data shape
Three to six parts, one value per period
Good for
Seasonal mix, channel share, transport modes
Avoid when
Readers need exact values per part
Sizes
XS, S, M and L, re-laid out from the data

Anatomy

Inspect it like the Figma file.

The same layers, names and tokens as the component. Select one to read its size, fill and style.

Layers

014 / Streamgraph

chart/014-streamgraph
plot · streamgraph
Layer
layer · Sea
Type
Vector
Size
760 × 76
Fill
data/cat-2
Group
Marks · 5

Layers

014 / Streamgraph

chart/014-streamgraph
plot · streamgraph
Layer
layer · Sea
Type
Vector
Size
279 × 40
Fill
data/cat-2
Group
Marks · 5

Sizes

Re-laid out, never scaled.

The same data at XS, S, M and L. Every size is redrawn from the data, so text and line weights never shrink.

M against S

Width360 px480 px

Plot328 px440 px

Labels1212

Marks55

Height212 px246 px

Same tokens at every size: text styles, 1 px lines and mark radius stay put.

When to use

The mix, flowing.

Three signs it fits, and three signs another type fits better.

Do the parts add up to a whole?

Each series is its own level.

Yes: Keep the streamgraph

Is the shape more important than exact values?

Exact values per period matter.

Yes: Keep the streamgraph

Are there many periods?

One period, one split.

Yes: Keep the streamgraph

Code and Figma

One name in Figma and in code.

Every Figma property is a prop with the same name and values. One command installs it.

Figma

chart/014-streamgraph

size
legend
Property = propValuesDefault
size"xs" · "s" · "m" · "l""xs"
legendfalsefalse
color"cat-1" · "cat-2" · "cat-3" · "cat-4""cat-1"
npx shadcn add @chartory/streamgraph
streamgraph.tsx
import { Streamgraph } from "@/components/chartory/streamgraph"import { shipmentsByMode } from "./shipments-by-mode"export function ShipmentsByMode() {  return (    <Streamgraph      data={shipmentsByMode}      size="m"      legend={false}    />  )}

Hearth widget

Streamgraph as a widget.

The chart in a Hearth card with a hero number and two blocks. One token set, light and dark.

Code
Get the code

EmberPreset

ChartoryDefault preset

Pick the blocks, the size and the preset for your own widget.

Read the Hearth widget docs

FAQ

Streamgraph questions.

What people ask before they put a streamgraph in a dashboard.

Something else?

hello@usechartory.com
  • Centring spreads the wobble over both edges, so no single layer looks bent by the ones below it. The thickness of a layer is its value; its position is not.

Related types

The same question, a different shape of answer. Every type ships in Figma and in code.

Same family

Change over time

Trends, levels and seasons across days, months or years.