Charts Across Musewoods
The Journal chart gallery — every chart type an author can place in a Journal figure
A rendered gallery and authoring reference for every Musewoods chart type available inside a Journal: what each one looks like, when to use it, whether inline or wide reads better, which interaction modes are permitted, and the Markdown that produces it.
Surendra Reddy14 min read
Abstract
Musewoods charts are one analytical object. The same ChartSpec, the same data resolver, and the same D3 engine render inside Stories, Journals, Viewgraphs, and Groves; what changes between fields is editorial — the safe area, the figure wrapper, the caption tone, and how much interaction the reader is permitted. This article is the Journal-facing half of that contract: a working gallery of every chart type an author can place in a Journal figure, each one rendered through the real pipeline, with the Markdown that produces it and a short note on when to reach for it. Read straight through, it answers one question — what can I put in a Journal, what will it look like, and how do I write it?
Every figure below resolves its data through the shared ChartDataResolver from a logical dataset id. Nothing here fetches a URL or embeds a table in the prose. The datasets are small, illustrative fixtures kept under data/charts/; their numbers are invented to exercise the renderer, not to assert anything about the world.
The Journal Chart Grammar
A Journal chart is a blockquote directive whose body is a list of **Key:** value lines — the same authoring grammar Stories and Viewgraphs use. It joins the numbered figure sequence alongside Mermaid diagrams and images, and its static first frame carries the whole finding.
The complete anatomy of a chart block:
> [!chart]
> **Chart:** bar
> **Treatment:** wide
> **Interaction:** inspect
> **Title:** Where automated authority concentrates
> **Caption:** Exposure score by control surface, from the 2025 review.
> **Source:** Illustrative Musewoods data
> **Note:** Scores are relative, not absolute risk.
> **Alt:** Bar chart of exposure score by control surface; model decision authority is highest and rollback capability lowest.
> **Data:** authority-exposure
> **X:** dimension
> **Y:** exposureChart names the type. Data is a logical dataset id (or a /data/charts path) — never a URL, because logical identity belongs in the article and physical location is infrastructure. X, Y, Value, Series, Size, Label, and Group bind the dataset's columns to the chart's analytical roles; which of them a type needs is listed in the capability reference at the end. Title, Caption, Source, Note, and Alt are the figure apparatus; Alt is required, because a chart that only works on screen is not evidence. Treatment is inline or wide. Interaction is one of none, inspect, focus, compare, or explore, subject to the Journal policy described below. Optional refinements — Stack, Orientation, Sort, ValueFormat, Bins, X Title, Y Title — are shown with the charts that use them.
Comparison and Magnitude
These are the charts for the question how big, and how do these compare? They are the Journal's workhorses, and most of them read well inline.
Vertical bar
The default answer to a magnitude comparison across a handful of named things. Choose it when the categories are few, unordered, and short enough to sit under the axis without turning. It is the most compact analytical figure a Journal offers, so it usually belongs inline, in the flow of the sentence it supports.
Median minutes per stage across one week of governed request handling.
Source Illustrative Musewoods data
Authoring pattern. Every chart in this family shares the same shape — Chart, Data, X, Y, plus Series where a second dimension is present:
> [!chart]
> **Chart:** bar
> **Treatment:** inline
> **Title:** ...
> **Alt:** ...
> **Data:** chart-gallery-throughput
> **X:** stage
> **Y:** valueHorizontal bar
The same comparison, turned on its side so long category names have room to be read. Reach for it the moment a label would wrap or tilt. Horizontal bars need horizontal space for the label column, so this is a wide figure.
Exposure score by control surface, ranked.
Source Illustrative Musewoods data
Add Orientation: horizontal to force the rotation, and Sort: value-desc when a ranking is the point. Without Orientation the engine still turns bars horizontal on its own once labels get long.
Grouped bar
Two or three series compared side by side within each category. Use it when the reader needs to compare series within a category more than totals across categories. The extra bars need room, so group comparisons are wide.
Weekly request volume by path.
Source Illustrative Musewoods data
Stacked bar
The same three series, stacked, when the composition of the whole is the argument and the individual series are secondary. Add Stack: true to the grouped-bar block. Keep the stack to a few series — beyond four the middle bands become impossible to compare.
Weekly volume by path, stacked to the quarterly total.
Source Illustrative Musewoods data
Diverging bar
Signed values around a real zero — variances, deltas, gains and losses. The centred baseline and sign-aware fill do the reading for you. It wants a little width so the value labels clear the bars on both sides.
Variance to plan by operating measure.
Source Illustrative Musewoods data
Dot plot
A magnitude comparison that also needs to show a change between two states — before and after, baseline and target — without the visual weight of bars. Each category gets a pair of dots joined by a thin connector. The paired legend and left label column make this a wide figure, and it is a natural place for compare.
Assessed score before the program and after two quarters.
Source Illustrative Musewoods data
Change and Time
These charts answer what happened over time, and how do the trajectories differ? A single trend reads well inline; anything with several series or labelled endpoints needs width.
Line
One measure over an ordered axis. The default trend chart: use it whenever the x-axis is time or another sequence and you have a single series to follow. It is compact enough for inline placement.
Weekly request volume handled on the automated path.
Source Illustrative Musewoods data
Authoring pattern. Time-series charts take X, Y, and Series when more than one line is present:
> [!chart]
> **Chart:** line
> **Treatment:** wide
> **Interaction:** focus
> **Data:** chart-gallery-quarterly
> **X:** quarter
> **Y:** value
> **Series:** seriesMulti-line
Several trends on shared axes, compared as shapes. Keep it under about eight series or the legend defeats the purpose. This is a wide figure, and it is the clearest case for focus: the reader isolates one line while the others stay as context.
Weekly request volume by path.
Source Illustrative Musewoods data
Area
A single trend where the magnitude beneath the line matters as much as its shape — cumulative volume, capacity consumed. Use it sparingly and never with multiple overlapping series in a Journal; one filled region, read inline.
Weekly request volume on the automated path, area-filled.
Source Illustrative Musewoods data
Slope
Two points in time and the reordering between them. Choose it over a line chart when only the start and end matter and the story is which things swapped places. Endpoint labels sit in dedicated left and right gutters, so slope is always wide.
Share of resolved work by operating model.
Source Illustrative Musewoods data
Distribution and Relationship
These charts answer how is this spread out? and how do two variables move together? Distributions can be compact; relationships with labelled points need room.
Histogram
The shape of a single set of numbers — where the mass sits, how long the tail runs. Reach for it instead of a summary statistic when the distribution itself is the point. It reads well inline. Bins overrides the automatic bin count.
Minutes from request to committed decision, one week of samples.
Source Illustrative Musewoods data
Scatter
Two continuous variables, one point per observation, to reveal correlation, clusters, and outliers. Colour by a Series when the groups are part of the question. Labelled points and a two-axis frame make this wide.
One point per team; colour is deployment stage.
Source Illustrative Musewoods data
Bubble
A scatter with a third quantity encoded as area. Use it only when that third variable genuinely belongs on the same frame — otherwise it is a scatter carrying noise. Size names the column that drives the radius.
Point area is the breadth of actions the team may take unattended.
Source Illustrative Musewoods data
Heatmap
A value across two categorical axes, read as a colour field — a small matrix of function against period, intensity against category. Keep the grid small enough that every cell label stays meaningful. Two axes of labels make it wide.
Weekly request volume by function and quarter.
Source Illustrative Musewoods data
Composition and Hierarchy
These charts answer what are the parts of the whole, and how do they nest?
Pie
Parts of a single whole, when there are only a few of them and precise comparison is not required. Keep it to two to six slices; past that a bar chart reads better. It is compact enough for inline placement.
Attributed contribution by value stream.
Source Illustrative Musewoods data
Treemap
Flat or shallow composition where the quantities span a wide range — a pie's job when there are too many parts, or when nesting matters. Area encodes value. It needs room to place labels inside the rectangles, so it is wide, and it is the one Journal chart that permits explore.
Each rectangle's area is its share of attributed value.
Source Illustrative Musewoods data
Tidy tree
An explicit hierarchy — a decision structure, an org, a taxonomy — drawn as a node-link diagram. Use it when the shape of the branching is the point rather than any quantity. Depth needs horizontal room, so tree is wide.
Sense, decide, and act, with the steps under each.
Source Illustrative Musewoods data
Flow
Sankey
Quantities moving through a sequence of stages, splitting and merging, with width proportional to volume. Use it when the reader needs to follow where a population goes — how inbound work is resolved, how a budget is allocated down a tree. The node and label gutters make it firmly wide.
One week of requests flowing from intake to outcome.
Source Illustrative Musewoods data
Interaction in a Journal
Interaction in a Journal is deliberately quieter than in a Viewgraph. The policy is a two-part gate: the chart family must implement the mode, and the Journal must permit it editorially. In practice that leaves four modes, and the first frame must already tell the story before any of them is used.
`inspect` is available on every chart type and needs no editorial justification. Hover, focus, or tap a mark and its precise value appears; the histogram, the throughput bar, and the heatmap above all use it. Nothing the reader needs to understand the figure is hidden behind it.
`focus` — isolating one series, path, branch, or slice while the rest fade to context — is available on the pointed, path, and hierarchical families: bar, dot, line, area, slope, scatter, bubble, pie, treemap, tree, and sankey. The multi-line, slope, scatter, tree, and sankey figures above demonstrate it. Use it when a chart legitimately carries several things at once and a reader will want to trace one of them.
`compare` — holding a small set of selections side by side — is available on the Cartesian families (bar, diverging bar, dot, line, area, slope, scatter, bubble). The dot plot above uses it. It suits a figure where the reader's job is to weigh two or three specific items against each other.
`explore` — descending into a structure the static frame cannot fully show — is permitted only on the treemap, and only where the hierarchy genuinely has depth worth opening. The treemap above declares it. It is the one mode that lets a Journal figure change what it is showing, and it should stay rare.
Histograms and heatmaps stop at inspect; pie, tree, and sankey stop at focus. Those are engine limits, not Journal policy, and the capability reference below records them.
Inline or Wide
inline renders the chart at the reading measure, in the column with the prose. wide grows the figure rightward to roughly the engine's full safe area without disturbing the text. The engine re-lays-out the chart for whichever size it is given — it is never a wide chart shrunk with CSS — so the choice is purely editorial.
Prefer inline for figures that read at a glance in a narrow column: a few-category bar chart, a single-series line or area, a small histogram, a small pie. Prefer wide whenever the figure needs horizontal room — long category labels, several series, endpoint labels, a second axis, a matrix, a hierarchy, or a flow. When in doubt, author inline first and widen only if the labels crowd; a Journal stays prose-led, and a chart that has taken over the page is usually the wrong chart rather than the wrong treatment.
Choosing a Chart
| You want to show… | Reach for |
|---|---|
| Magnitude across a few named things | bar, or horizontal bar for long labels |
| A ranking | horizontal bar with Sort: value-desc |
| Two or three series within each category | grouped bar |
| Composition of a total | stacked bar, pie (few parts), or treemap (many) |
| Signed change around zero | diverging bar |
| Before-and-after per category | dot plot |
| One trend over time | line, or area if the magnitude beneath matters |
| Several trajectories compared | multi-line, or slope for start-versus-end |
| The spread of one set of numbers | histogram |
| How two variables move together | scatter, or bubble to add a third quantity |
| A value across two categorical axes | heatmap |
| An explicit branching structure | tidy tree |
| Where a population flows and splits | sankey |
Capability Reference
The rows below mirror the registry the parser and validator read; a regression test keeps this table and the code in step. Fields are the **Key:** lines the type requires; best treatment is guidance, not a constraint.
| Chart | Fields | Best treatment | Inspect | Focus | Compare | Explore |
|---|---|---|---|---|---|---|
bar | X, Y (+ Series) | inline / wide | ✅ | ✅ | ✅ | — |
diverging-bar | X, Y | wide | ✅ | ✅ | ✅ | — |
dot | X, Y (+ Series) | wide | ✅ | ✅ | ✅ | — |
line | X, Y (+ Series) | inline / wide | ✅ | ✅ | ✅ | — |
area | X, Y | inline | ✅ | ✅ | ✅ | — |
slope | X, Y, Series | wide | ✅ | ✅ | ✅ | — |
scatter | X, Y (+ Series) | wide | ✅ | ✅ | ✅ | — |
bubble | X, Y, Size (+ Series) | wide | ✅ | ✅ | ✅ | — |
histogram | Value (+ Bins) | inline | ✅ | — | — | — |
heatmap | X, Y, Value | wide | ✅ | — | — | — |
pie | Label, Value | inline | ✅ | ✅ | — | — |
treemap | Label, Value | wide | ✅ | ✅ | ✅ | ✅ |
tree | X, Group, Label | wide | ✅ | ✅ | — | — |
sankey | X, Group, Value | wide | ✅ | ✅ | — | — |
Every registered Musewoods chart type is available in a Journal; the Journal does not withhold any family. What the Journal restrains is interaction depth, not the chart vocabulary. The Viewgraph-only settings a Journal has no equivalent for are the hero and interpretation layout treatments and the unrestricted explore grammar — a Journal keeps inline and wide, and gates explore to the treemap.
The First-Frame Rule
The static rendering is the whole finding. A reader looking at a printout, a screenshot, or a screen reader announcing the Alt text must reach the same conclusion as a reader who can hover for exact values. Interaction may add precision and exploration may test a structure, but neither may carry meaning that the first frame omits.
The first frame tells. Interaction reveals. Exploration tests.
A Journal chart earns its place when a specific data relationship is load-bearing for the sentence beside it. If the prose can carry the point on its own, the chart is decoration and should be cut. One figure, one analytical job, read in sequence with the argument — that is what keeps a gallery like this one a Journal rather than a dashboard.