Visualize This — Field Guide

Nathan Yau's chart families, rebuilt with the book's own data, annotated for retail reporting

Each plate reproduces one of the chart forms from Visualize This (2nd ed.) — hot dogs, postage, Walmarts and all — then translates it into the question it answers on store / date / category / net-sales data and names the Power BI visual that does the job. Hover any mark for its value; every chart has a table twin.

Form before colorThe reader's job (compare, trend, part-to-whole, distribute) picks the chart. Color comes last.
Emphasis beats rainbowOne accent hue, everything else gray. Yau's record-year bars; your comp-store outliers.
Sequential = one hueHeatmaps and choropleths go light→dark in a single hue. Never a rainbow ramp.
Area, not radiusScaled symbols use √value so circle area tracks the number.
Sort, then annotateOrder categories by value, then write the one sentence the chart exists to say.
Chapter 4

Patterns over time

Record-setting years, highlighted

bar · emphasisNathan's Hot Dog Eating Contest, 1980–2023
view
new recordno record

What Yau teaches

Start with the default barplot(), then take away: borders off, one hue for the bars that carry the story, gray for the rest, a wrapped annotation for the 2001 jump.

Retail translation

Weekly net sales by fiscal week with record weeks (or promo weeks) highlighted. The story is "which weeks broke the pattern", not "here are 52 bars".

Power BI

Clustered column + conditional formatting on Column color driven by a flag measure, e.g. Is Record Week = IF([Net Sales] > [Prior Max Net Sales], 1, 0). Annotate with a text box, not a data label on every bar.

Rates that change in steps get drawn as steps

step lineUS first-class postage, first ounce, 1863–2023
view

What Yau teaches

plot(type="s"): a value that holds until the next change is a step, and interpolating between changes invents movement that never happened.

Retail translation

Shelf price, fuel rack price, contract cost, tax rate — anything effective-dated. Draw the step from the effective date; your line chart of monthly average price is smoothing away the actual events.

Power BI

Line chart → Format → Lines → Step on (2023+ builds). Feed it the effective-dated table, not a monthly average. For older builds, use Deneb with "interpolate": "step-after".

Two cycles at once: month × hour

heatmap · sequentialShare of fatal crashes involving alcohol (NHTSA FARS)
view

What Yau teaches

A time series with two periodic components wants a grid, not a 288-point line. One hue, six ordered steps, white gaps between cells, and the axes labelled in human units (12am, noon, 6pm).

Retail translation

Transactions or fuel gallons by day-of-week × hour per store — the labor-scheduling chart. Or week-of-year × year for seasonality drift.

Power BI

Matrix visual with rows = hour, columns = weekday, values = measure, and Cell elements → Background color on a single-hue gradient. Turn off values if you want a pure heatmap. Or the Deneb rect mark with a scale: {"scheme":"blues"}.

Chapter 5

Proportions

How the mix changed, 1976–2021

stacked area · 100%US household types (IPUMS)
view

What Yau teaches

Pie charts are for ≤ 6 slices at a glance; sorted bars beat them for reading values; and when the proportions have a time axis, stack them — then reshape the long table to wide (his prepare-household-types.R) before plotting.

Retail translation

Category mix of net sales by fiscal period (tobacco / beverages / fuel / lottery…). The stacked-100% view answers "is the mix shifting"; the plain stacked view answers "is the total growing". Ask which question first.

Power BI

100% stacked area (or stacked column for ≤ 24 periods). Sort legend by last-period share, fold anything under 3% into Other with a calculated column, and cap at 7 series — the palette stops being distinguishable past that.

Chapter 6

Relationships

Two groups, one gap per row

barbell / dumbbellParents' childcare activities on a given day (ATUS)
view
menwomen

What Yau teaches

The D3 barbell: a band scale for rows, a line for the gap, two circles for the ends. Sort by one end so the gaps read as a shape. Label MEN / WOMEN once, on the top row, never in a legend the eye has to travel to.

Retail translation

This year vs. last year per store, or plan vs. actual per category. The connecting line is the variance — far more legible than clustered bars for 15+ rows.

Power BI

No core dumbbell. Options: (a) Deneb — rule mark from [Prior] to [Current] plus two point layers; (b) the "MacGyver" scatter with Error bars; (c) a table with a variance column, which is often honest enough.

Who leads, and by how much

difference chartBeef vs. chicken, lbs per person per year (USDA ERS)
view
beefchicken

What Yau teaches

Two lines plus a clipped area fill between them, colored by which is on top. The fill is the message; the crossing year is the annotation.

Retail translation

Net sales vs. budget by week (fill = variance, colored above/below), or inside vs. fuel gross margin dollars — the classic c-store "who's carrying the store" chart.

Power BI

Core area charts can't clip by sign. Deneb: two area layers with a filter transform per sign, or one area mark with y/y2 and a condition on fill. Keep the arithmetic in DAX ([Variance to Budget]), not in the Vega spec.

Chapter 7

Spatial relationships

A rate, shaded in one hue

choropleth · AlbersShare of population identifying as Asian, 2020 census (PL 94-171)
view

What Yau teaches

Load boundaries with sf, project to Albers equal-area (never Mercator for area comparisons), join the census table on GEOID, bin the rate (not the count) into five classes, and shade with one hue.

Retail translation

Comp-store growth or gallons-per-store by county/region; store locations as points; new openings as small multiples by year. Shade rates and per-store metrics, never raw totals — big regions win by size alone.

Power BI

Shape map (filled, needs a TopoJSON for custom regions) or Azure Maps with Filled map layer; bubble layer for store points with size = √metric via a SQRT([Gallons]) measure. Enable map visuals in tenant settings first — it's off by default.

Chapter 8

Distributions

The same 528 players, your choice of bins

histogram · small multiplesNBA player heights, 2013–14 (Basketball-Reference)
bin width
view
position mean

What Yau teaches

Stack the dots, then bin them; bin width is a real choice that changes the picture (try 1, 3, 6). Compare groups with small multiples on a shared x-axis and a mean line, ordered by the thing you expect to shift.

Retail translation

Basket size distribution by store format; days-of-supply distribution by SKU; margin % distribution by category. A mean in a KPI card hides the two-humped distribution every time.

Power BI

No core histogram. Bin the column (right-click field → New group → Bin) and use a column chart, or Deneb bin transform with a bin-width parameter. Box plots: the AppSource "Box and Whisker" visual or Deneb boxplot mark.

Built from the companion code and data for Visualize This, 2nd ed. (Nathan Yau, Wiley 2024), chapters 4–8. Chart forms follow Yau's; colors are a CVD-validated palette in fixed slot order rather than the book's per-chart hex codes; every chart carries a hover layer and a table twin. Retail translations assume a star schema at store × date × category grain.