Repository navigation
Proposal: new dataviz types — treemap, sankey, slopegraph + more #62
Description
Activity
- added a commit that references this issue
on Aug 15, 2026 Thanks for the unusually complete proposal. I’m keeping this as the quantitative-chart roadmap, but we should not add 16 top-level types at once. Please start with a standalone Treemap PR; Sankey is the next candidate. Slope/bump/stream/ridgeline should be evaluated as Line variants, dumbbell as Bar, beeswarm/bubble as Scatter, and small multiples as a reusable composition primitive. Hex maps and arc diagrams are deferred for now.
Reacted by 0xDarkMatterThanks @cathrynlavery ! Happy to contribute. I already had a lot of this floating around.
Actually have a lot of these built already, but didn't want to overwhelm you with a PR tsunami.
I'll send though one at a time so you can review and merge cleanly.Treemap has now landed as the 28th visual type in PR #87, including light/dark/editorial examples and area/annotation verification. I\u2019m keeping this roadmap open for the remaining candidates; Sankey remains the next standalone type to evaluate, while the other proposals should continue through the variant/composition decisions above.
Thanks! Sankey's underway.
One heads-up while it's still cheap to change: I'd like it to handle multi-stage flows — source through a couple of intermediate stages to a sink — rather than just source-to-target. That's where most of the interesting flow stories live (spend moving through a pipeline, traffic through routing layers, that sort of thing), and a two-column version can't tell them. Same one-accent, static treatment as everything else, just with staged columns and a legend for the flow classes.
Shout if you'd rather it stayed simple two-column and I'll scope it back — easier to hear now than at review.
These are amazing, thanks for contributing!
Reacted by 0xDarkMatterReacted by 0xDarkMatter- added 5 commits that reference this issue
on Aug 18, 2026 Roadmap update: Sankey shipped as a canonical diagram type in #118, with light, dark, and full-editorial examples plus its routing, reference, and budget. Treemap and the line-chart slopegraph variant are also shipped. Keeping this issue open for the remaining proposed data-visualization work.
Reacted by 0xDarkMatterWith the variant wave in review (#139–#143), four of the original sixteen are still waiting on a routing call from you: waffle, marimekko, warming stripes, and punch card. Happy to build any once they have a home — my guesses, for whatever they're worth:
- Waffle + punch card — possibly one new parent type between them: a unit grid (regular grid of cells, one mark per cell), with variants distinguished by what positions mean. Waffle: positions meaningless — cells are fixed quanta, filled count is the value. Punch card: rows and columns are categorical axes, mark size carries a per-cell magnitude. One type covers both, gives a future heatmap a parent, and — if you ever un-defer it — the hex tile map slots in as the third sibling (positions approximate geography, hex packing being just cell shape; though that one also brings a curated position dataset with it, which is its own question). If you'd rather not take a new type, waffle standalone is the stronger of the two and punch card defers cleanly.
- Marimekko — Treemap variant. It's area encoding in a space-filling rectangle, just with axis structure — closer kin to treemap than to a stacked bar.
- Warming stripes — Timeline variant, or possibly just a named recipe under semantic patterns rather than a drawn type at all.
No rush — plenty in the queue already. Say where each lands (or "defer") and I'll pick them off one at a time like the others.
- added a commit that references this issue
on Aug 21, 2026 Routing call on the last four — thanks for the patience while the variant wave landed (bump and beeswarm are now consolidated on main via #160, so eight of your original sixteen are shipped).
- Marimekko → Treemap variant. Agreed on the kinship: it's area encoding in a space-filling rectangle, and the treemap verifier's area checks extend naturally. Same shape as the other variant PRs: reference section, three examples, routing-row update, verifier coverage.
- Waffle → accept, as the unit-grid framing you proposed. A regular grid of discrete cells where filled count is the value is a layout grammar no existing type provides (bar encodes length, treemap area). Because that's a new top-level type, the PR must carry the full §10 shipping set and amend the ADR 0002 counters in the same PR — see docs/adr/0002 for the procedure.
- Punch card → variant of unit grid, once waffle lands as its canonical form (rows/columns become categorical axes, mark size carries the per-cell magnitude). Please sequence it after waffle rather than bundling.
- Warming stripes → defer. A chart whose only encoding is a sequential color ramp fights the one-accent system head-on; I'd rather not admit it until we have a principled sequential-ramp story. Happy to revisit.
Hex tile map and arc diagram stay deferred as before. Streamgraph (#140) I'll review separately. Thanks again — this roadmap has been a genuine pleasure to work through.
Reacted by 0xDarkMatterNoting that #198 (sdhilip200) carries the waffle slot as Unit Grid: 10x10 equal cells, filled count is the value, rows/columns carry no meaning, full §10 set plus the ADR 0002 amendment. That matches the unit-grid framing routed above, so we won't open a competing waffle PR.
Punch card: sequenced after #198 lands, as a Unit Grid variant on its grammar - the
data-unit-*contract, categorical row/column axes, mark size for per-cell magnitude, andverify-unit-grid.pyextended with a variant mode rather than a second verifier. Same shape as the other variant PRs: reference section, three examples, routing-row update, verifier coverage. Nothing to bundle into #198.
Love this repo @cathrynlavery ! I've been using some charts and dataviz in my own projects recently so thought I would contribute some extra chart types.
The current 27 types cover diagrams really well. On the chart side there's bar, line, and radar — these would add proportion (treemap), flow (sankey), rank change (slopegraph), paired values (dumbbell), part-of-whole counts (waffle), and more.
I've drafted 16 candidates in the house type-reference format, each with a working example in the default skin using public data (OWID, HadCRUT5, Olympic medals, US Census). They're all below — pick whichever you'd like included.
They all follow the house rules — one accent, ink-opacity ramps, mono for numbers, sourced footnotes — and each has an honest-data rule (treemap area is the only encoding, never clipped or log-scaled, etc).
If you're interested I'd PR whichever you choose, done per the contributing checklist: type reference, SKILL.md row, three static example variants, gallery entries, all gates green. My drafts have hover tooltips and a theme toggle for easy review but I'd ship fully static per ADR 0001.
Full drafts (type specs + honest-data rules): dataviz-types.md — each image below links to the live HTML.
Happy to drop any that don't fit, or adjust the examples. Thanks!