MusewoodsJournal

Charts Across Musewoods
Journal form
Essay
Reference Architecture

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:** exposure

Chart 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.

Figure 1Where processing time is spent
Median minutes per stage across one week of governed request handling.Bar chart of median minutes per stage; the commit stage is the longest and the exception path the shortest.010203040IntakeEvidencePolicyReviewCommitException34.628.122.714.241.39.8Fit: FITPlot: 665 × 385 (88% of frame)Labels: 12 rendered · 0 moved · 0 clipped · 0 unresolvedAxes: x 6 · y 5

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:** value

Horizontal 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.

Figure 2Where automated authority concentrates
Exposure score by control surface, ranked.Horizontal bar chart of exposure score by control surface, ranked from model decision authority down to rollback capability.0481216202428Model decision authorityAutomated commit scopeData provenanceEscalation latencyAudit trail completenessHuman review coverageRollback capability26.122.718.415.612.89.37.1Fit: FITPlot: 815 × 504 (78% of frame)Labels: 14 rendered · 0 moved · 0 clipped · 0 unresolvedAxes: x 8 · y 0

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.

Figure 3How each resolution path changed over six quarters
Weekly request volume by path.Grouped bar chart with three series per quarter; governed automation rises, manual queue falls, assisted review stays flat.051015202530352024 Q12024 Q22024 Q32024 Q42025 Q12025 Q2Governed automationAssisted reviewManual queueFit: FITPlot: 985 × 473 (84% of frame)Labels: 6 rendered · 0 moved · 0 clipped · 0 unresolvedAxes: x 6 · y 8

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.

Figure 4Total request volume, and what it is made of
Weekly volume by path, stacked to the quarterly total.Stacked bar chart of weekly request volume per quarter; the total grows and governed automation takes an increasing share.010203040502024 Q12024 Q22024 Q32024 Q42025 Q12025 Q2Governed automationAssisted reviewManual queueFit: FITPlot: 985 × 473 (84% of frame)Labels: 6 rendered · 0 moved · 0 clipped · 0 unresolvedAxes: x 6 · y 6

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.

Figure 5Where the quarter beat plan, and where it missed
Variance to plan by operating measure.Diverging bar chart; renewal revenue and delivery margin are above plan, exception backlog and onboarding time below it.−10−6−22610Variance to planRenewal revenueDelivery marginCustomer retentionWorking capitalSupport costOnboarding timeException backlog8.45.13.21.1−2.6−4.3−6.8Fit: FITPlot: 814 × 485 (78% of frame)Labels: 14 rendered · 0 moved · 0 clipped · 0 unresolvedAxes: x 6 · y 0

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.

Figure 6A capability program moved every measure, unevenly
Assessed score before the program and after two quarters.Dot plot of five capabilities; every capability improved, with governed change and evidence capture gaining the most.01020304050607080ForecastingDeploymentIncident responseGoverned changeEvidence captureBaselineAfter programFit: FITPlot: 869 × 472 (84% of frame)Labels: 10 rendered · 0 moved · 0 clipped · 0 unresolvedAxes: x 9 · y 0

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.

Figure 7Governed automation volume, seven quarters
Weekly request volume handled on the automated path.Line chart rising steadily from about 12 to about 36 over seven quarters.010203040Value 35.82024 Q12024 Q22024 Q32024 Q42025 Q12025 Q22025 Q3Fit: FITPlot: 575 × 384 (80% of frame)Labels: 1 rendered · 0 moved · 0 clipped · 0 unresolvedAxes: x 7 · y 5

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:** series

Multi-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.

Figure 8Three resolution paths, six quarters
Weekly request volume by path.Multi-line chart; governed automation climbs from 12 to 31, manual queue falls from 7 to 3, assisted review is roughly flat near 11.05101520253035Governed automation 31.2Assisted review 12.6Manual queue 3.12024 Q12024 Q22024 Q32024 Q42025 Q12025 Q2Fit: FITPlot: 800 × 504 (77% of frame)Labels: 3 rendered · 0 moved · 0 clipped · 0 unresolvedAxes: x 6 · y 8

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.

Figure 9Cumulative governed volume
Weekly request volume on the automated path, area-filled.Area chart rising from about 12 to about 36 over seven quarters, the region beneath the line filled.0102030402024 Q12024 Q22024 Q32024 Q42025 Q12025 Q22025 Q3Fit: FITPlot: 665 × 384 (87% of frame)Labels: 1 rendered · 0 moved · 0 clipped · 0 unresolvedAxes: x 7 · y 5

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.

Figure 10Where operating work happens, 2021 to 2025
Share of resolved work by operating model.Slope chart; governed automation rises from 9 to 41 percent while manual operations falls from 36 to 13 percent, the two lines crossing.20212025Manual operations 36%Manual operations 13%Assisted review 19%Assisted review 28%Governed automation 9%Governed automation 41%Exception handling 24%Exception handling 13%Oversight and audit 12%Oversight and audit 5%Fit: FITPlot: 661 × 479 (64% of frame)Labels: 10 rendered · 2 moved · 0 clipped · 0 unresolvedAxes: x 2 · y 0

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.

Figure 11Decision latency is fast, with a tail
Minutes from request to committed decision, one week of samples.Histogram of decision latency; most decisions land between two and ten minutes, with a thin tail out past forty.024681012count01020304050Fit: FITPlot: 646 × 365 (83% of frame)Labels: 13 rendered · 0 moved · 0 clipped · 0 unresolvedAxes: x 6 · y 7

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.

Figure 12Readiness and autonomy move together, up to a point
One point per team; colour is deployment stage.Scatter of readiness against granted autonomy; the relationship is positive and tightens as teams reach the governed stage.010203040500123456789102 · Pilot3 · Pilot4 · Pilot5 · Scaling6 · Scaling7 · Scaling8 · Governed9 · Governed9 · Governed10 · GovernedPilotScalingGovernedFit: FITPlot: 979 × 466 (83% of frame)Labels: 0 rendered · 0 moved · 0 clipped · 0 unresolvedAxes: x 11 · y 6

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.

Figure 13Readiness, autonomy, and the scope each team was trusted with
Point area is the breadth of actions the team may take unattended.Bubble chart of readiness against autonomy; the largest bubbles, meaning the widest trusted scope, cluster at the top right.010203040500123456789102 · Pilot3 · Pilot4 · Pilot5 · Scaling6 · Scaling7 · Scaling8 · Governed9 · Governed9 · Governed10 · GovernedPilotScalingGovernedFit: FITPlot: 963 × 450 (80% of frame)Labels: 0 rendered · 0 moved · 0 clipped · 0 unresolvedAxes: x 11 · y 6

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.

Figure 14Where governed volume grew through the year
Weekly request volume by function and quarter.Heatmap of volume by function and quarter; every function grows through the year and operations grows fastest.612192791724333712185101421FinanceOperationsRiskCustomer successQ1Q2Q3Q4333Fit: FITPlot: 891 × 474 (85% of frame)Labels: 8 rendered · 0 moved · 0 clipped · 0 unresolvedAxes: x 4 · y 4

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.

Figure 15Where the program's value came from
Attributed contribution by value stream.Pie chart; revenue capture and margin protection together account for about three-fifths of attributed value.Learning and enablement10%Risk reduction13%Delivery operations17%Revenue capture34%Margin protection26%Fit: FITPlot: 688 × 408 (93% of frame)Labels: 5 rendered · 0 moved · 0 clipped · 0 unresolvedAxes: x — · y —

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.

Figure 16Attributed value, sized by contribution
Each rectangle's area is its share of attributed value.Treemap of five value streams; revenue capture is the largest rectangle and learning and enablement the smallest.Revenue capture34.2Margin protection26.4Delivery operations16.8Risk reduction13.1Learning and enablement9.5Fit: FITPlot: 1008 × 528 (94% of frame)Labels: 5 rendered · 0 moved · 0 clipped · 0 unresolvedAxes: x — · y —

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.

Figure 17The governed operating loop as a decision tree
Sense, decide, and act, with the steps under each.Tidy tree with three branches — sense, decide, act — and two to three leaves under each.Governed operating loopSenseDecideActIngestNormalizePolicy checkModel callHuman reviewCommitRecord evidenceNotifyFit: FITPlot: 724 × 528 (70% of frame)Labels: 12 rendered · 0 moved · 0 clipped · 0 unresolvedAxes: x — · y —

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.

Figure 18How inbound requests are resolved
One week of requests flowing from intake to outcome.Sankey diagram; most inbound requests take the automated path to committed, with a thin flow escalating and a fraction of those withdrawn.Inbound requestsAutomated pathAssisted pathManual queueEscalatedCommittedResolved with changeWithdrawnFit: FITPlot: 722 × 508 (69% of frame)Labels: 8 rendered · 0 moved · 0 clipped · 0 unresolvedAxes: x — · y —

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 thingsbar, or horizontal bar for long labels
A rankinghorizontal bar with Sort: value-desc
Two or three series within each categorygrouped bar
Composition of a totalstacked bar, pie (few parts), or treemap (many)
Signed change around zerodiverging bar
Before-and-after per categorydot plot
One trend over timeline, or area if the magnitude beneath matters
Several trajectories comparedmulti-line, or slope for start-versus-end
The spread of one set of numbershistogram
How two variables move togetherscatter, or bubble to add a third quantity
A value across two categorical axesheatmap
An explicit branching structuretidy tree
Where a population flows and splitssankey

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.

ChartFieldsBest treatmentInspectFocusCompareExplore
barX, Y (+ Series)inline / wide✅✅✅—
diverging-barX, Ywide✅✅✅—
dotX, Y (+ Series)wide✅✅✅—
lineX, Y (+ Series)inline / wide✅✅✅—
areaX, Yinline✅✅✅—
slopeX, Y, Serieswide✅✅✅—
scatterX, Y (+ Series)wide✅✅✅—
bubbleX, Y, Size (+ Series)wide✅✅✅—
histogramValue (+ Bins)inline✅———
heatmapX, Y, Valuewide✅———
pieLabel, Valueinline✅✅——
treemapLabel, Valuewide✅✅✅✅
treeX, Group, Labelwide✅✅——
sankeyX, Group, Valuewide✅✅——

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.