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
0204060801980198519901995200020052010201520202001: Kobayashi nearly doubles the record76 · Chestnut, 2021
view
new recordno record
YearWinnerHDBRecord
1980Paul Siederman & Joe Baldini9.75
1981Thomas DeBerry11yes
1982Steven Abrams11.1yes
1983Emil Gomez10.5
1984Birgit Felden9.5
1985Oscar Rodriguez11.75yes
1986Mark Heller15.5yes
1987Don Wolfman13.5
1988Jay Green10
1989Jay Green15.5
1990Mike DeVito & Jay Green15
1991Frank Dellarosa21yes
1992Frank Dellarosa19
1993Mike DeVito17
1994Mike DeVito20
1995Edward Krachie19.5
1996Edward Krachie22yes
1997Hirofumi Nakajima24.5yes
1998Hirofumi Nakajima19
1999Steve Keiner21.5
2000Kazutoyo "The Rabbit" Arai25.13yes
2001Takeru Kobayashi50yes
2002Takeru Kobayashi50.5yes
2003Takeru Kobayashi44.5
2004Takeru Kobayashi53.5yes
2005Takeru Kobayashi49
2006Takeru "Tsunami" Kobayashi53.75yes
2007Joey Chestnut66yes
2008Joey Chestnut59
2009Joey Chestnut68yes
2010Joey Chestnut54
2011Joey Chestnut62
2012Joey Chestnut68
2013Joey Chestnut69yes
2014Joey Chestnut61
2015Matt Stonie62
2016Joey Chestnut70yes
2017Joey Chestnut72yes
2018Joey Chestnut74yes
2019Joey Chestnut71
2020Joey Chestnut75yes
2021Joey Chestnut76yes
2022Joey Chestnut63
2023Joey Chestnut62

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
$0.00$0.10$0.20$0.30$0.40$0.50$0.60$0.7018801900192019401960198020002020each change is a new step — the rate holds until the next one
view
YearRate
1863$0.06
1883$0.04
1885$0.02
1917$0.03
1919$0.02
1932$0.03
1958$0.04
1963$0.05
1968$0.06
1971$0.08
1974$0.10
1975$0.13
1978$0.15
1981$0.20
1985$0.22
1988$0.25
1991$0.29
1995$0.32
1999$0.33
2001$0.34
2002$0.37
2006$0.39
2007$0.41
2008$0.42
2009$0.44
2012$0.45
2013$0.46
2014$0.49
2016$0.47
2017$0.49
2018$0.50
2019$0.55
2021$0.58
2022$0.60
2023$0.66

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)
JanFebMarAprMayJunJulAugSepOctNovDec12am6amnoon6pm11pm
view
≤15%15–30%30–45%45–60%>60%
Month01234567891011121314151617181920212223
Jan57%63%56%51%47%15%12%10%10%5%7%9%10%10%11%20%19%21%18%29%30%33%40%44%
Feb58%67%60%63%37%31%25%15%10%13%5%12%14%6%13%17%19%25%20%22%27%40%31%48%
Mar48%62%67%63%46%22%19%15%4%13%8%8%11%13%20%14%24%33%30%27%30%33%44%47%
Apr49%52%65%52%40%24%13%17%12%5%10%11%12%15%13%14%14%30%35%36%34%35%47%51%
May49%63%62%63%46%30%24%16%7%13%10%16%10%14%15%14%23%30%37%44%37%33%36%48%
Jun55%58%61%45%42%18%22%19%6%9%6%9%13%8%11%14%19%21%34%39%40%38%39%45%
Jul47%54%50%62%26%24%24%15%6%6%9%10%9%13%12%14%19%25%34%37%46%38%41%32%
Aug49%64%68%63%43%29%20%15%7%9%8%13%7%14%13%20%20%27%37%40%37%38%41%54%
Sep57%54%66%57%31%14%11%10%13%6%8%11%10%17%9%15%18%26%29%27%29%28%38%43%
Oct54%46%59%51%49%24%11%10%5%8%8%10%8%16%15%19%16%23%22%21%23%35%33%45%
Nov49%60%59%49%47%27%14%15%15%11%14%14%12%13%11%15%21%17%19%27%22%32%31%44%
Dec47%56%65%54%35%29%9%17%13%6%8%7%6%7%12%12%18%14%18%25%22%35%39%43%

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)
0%20%40%60%80%100%19801990200020102020singlenuclear-married-nochildrennuclear-married-childrencompositeextendednuclear-mother
view
singlenuclear-married-nochildrennuclear-married-childrencompositeextendednuclear-mothernuclear-father
Yearsinglenuclear-married-nochildrennuclear-married-childrencompositeextendednuclear-mothernuclear-father
197620.8%23.1%37.2%3.6%7.4%7.0%0.8%
197721.2%22.9%36.6%4.0%7.3%7.1%0.8%
197822.2%22.3%35.3%4.3%7.6%7.4%0.9%
197922.5%22.4%34.9%4.8%7.3%7.4%0.9%
198022.7%22.6%34.2%5.0%7.0%7.6%0.9%
198123.2%22.1%33.7%5.2%7.1%7.7%1.0%
198223.4%22.4%32.7%5.3%7.3%8.0%1.0%
198323.2%22.1%32.8%5.5%7.5%7.9%1.1%
198423.6%21.8%32.6%5.7%7.2%8.1%1.0%
198523.9%21.9%32.0%5.9%7.1%8.1%1.1%
198624.1%21.6%31.9%6.0%7.2%8.1%1.2%
198723.8%21.9%31.5%6.2%7.3%8.0%1.2%
198824.3%21.9%31.2%6.3%7.2%8.0%1.2%
198924.6%21.8%30.7%6.5%7.1%8.1%1.1%
199024.8%21.9%30.2%6.8%7.1%8.0%1.2%
199125.2%21.6%29.7%6.9%7.3%8.2%1.1%
199225.2%21.6%29.4%7.2%7.2%8.2%1.3%
199324.6%21.8%29.6%7.2%7.2%8.3%1.2%
199424.4%21.4%29.2%7.8%7.5%8.6%1.2%
199525.0%21.6%28.8%7.7%7.5%8.2%1.3%
199625.0%21.7%28.2%8.0%7.5%8.3%1.4%
199725.2%21.0%28.0%8.4%7.7%8.4%1.4%
199825.7%21.3%27.9%8.3%7.5%8.0%1.4%
199925.6%21.7%27.2%8.4%7.5%8.1%1.5%
200025.6%21.9%26.9%9.0%7.6%7.7%1.4%
200126.1%21.9%26.5%8.9%7.7%7.5%1.4%
200226.4%21.9%26.1%8.7%7.7%7.7%1.5%
200326.5%21.8%25.9%8.7%7.9%7.7%1.5%
200426.4%22.1%25.6%8.8%8.1%7.5%1.5%
200526.6%21.6%25.6%8.8%8.3%7.6%1.4%
200626.7%21.5%25.3%9.0%8.3%7.7%1.5%
200726.9%21.7%25.2%8.9%8.2%7.7%1.4%
200827.6%21.6%24.5%9.1%8.2%7.5%1.5%
200927.0%22.1%24.3%9.1%8.7%7.4%1.4%
201026.7%21.6%23.8%10.1%9.0%7.4%1.5%
201127.6%21.6%23.1%10.0%8.8%7.5%1.5%
201227.4%21.8%22.8%10.1%8.6%7.7%1.6%
201327.4%21.5%22.8%10.5%8.8%7.4%1.6%
201427.8%21.6%22.8%9.9%8.9%7.5%1.6%
201528.1%21.5%22.8%10.2%8.9%7.0%1.5%
201628.3%21.7%22.4%10.3%8.6%7.2%1.6%
201728.1%22.1%22.0%10.1%9.0%7.0%1.6%
201828.1%22.1%21.9%10.7%8.9%6.8%1.6%
201928.4%22.5%21.7%10.4%9.0%6.6%1.5%
202028.2%22.6%22.0%10.2%9.1%6.5%1.5%
202128.5%22.2%21.2%10.8%9.0%6.6%1.6%

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)
0%20%40%60%80%Physical careMENWOMENPicking up/dropping offPlaying, not sportsHomeworkReading to/withTalking with/listeningLooking after (as a pri. activity)Waiting for/withOrganization and planningAttending eventsObtaining medical careProviding medical careMeetings and school conferencesWaiting for children's healthPlaying sports
view
menwomen
ActivityMenWomenGap (pts)
Physical care46.8%71.2%24.4
Picking up/dropping off27.2%48.0%20.8
Playing, not sports21.4%21.6%0.2
Homework10.3%20.7%10.4
Reading to/with9.1%14.5%5.4
Talking with/listening5.7%13.8%8.1
Looking after (as a pri. activity)5.1%12.1%7.0
Waiting for/with4.9%11.7%6.8
Organization and planning1.6%6.4%4.8
Attending events2.6%4.8%2.2
Obtaining medical care0.6%3.0%2.4
Providing medical care0.8%3.0%2.2
Meetings and school conferences0.5%1.7%1.2
Waiting for children's health0.3%1.4%1.1
Playing sports1.0%1.3%0.3

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)
025507510019201940196019802000lbs per person per yearchicken passes beef, 2010BEEFCHICKEN
view
beefchicken
YearBeefChickenBeef − chicken
190951.110.440.7
191048.511.037.5
191147.211.136.1
191244.510.633.9
191343.610.333.3
191442.710.332.4
191538.810.228.6
191640.69.631.0
191744.69.435.2
191847.29.437.8
191942.410.132.3
192040.79.731.0
192138.29.528.7
192240.710.130.6
192341.110.430.7
192441.09.731.3
192541.010.130.9
192641.510.131.4
192737.510.826.7
192833.610.423.2
192934.210.124.1
193033.711.122.6
193133.410.023.4
193232.110.221.9
193335.510.425.1
193443.99.634.3
193536.69.327.3
193641.69.632.0
193738.09.728.3
193837.49.028.4
193937.610.027.6
194037.810.027.8
194142.611.031.6
194245.912.733.2
194343.016.027.0
194446.615.331.3
194548.015.132.9
194644.213.930.3
194749.212.536.7
194844.212.631.6
194944.713.531.2
195044.614.330.3
195141.215.026.2
195243.915.228.7
195354.515.139.4
195456.015.640.4
195557.214.742.5
195659.516.842.7
195758.717.541.2
195855.919.236.7
195956.619.736.9
196059.119.140.0
196161.020.540.5
196261.720.541.2
196365.421.044.4
196470.621.349.3
196570.422.847.6
196673.724.549.2
196775.325.150.2
196877.325.252.1
196977.826.351.5
197079.827.452.4
197179.227.451.8
197280.528.352.2
197376.027.148.9
197480.727.053.7
197583.226.456.8
197688.828.560.3
197786.329.057.3
197882.230.451.8
197973.532.840.7
198072.132.739.4
198172.833.739.1
198272.533.938.6
198374.134.040.1
198473.835.338.5
198574.636.438.2
198674.437.237.2
198769.539.430.1
198868.639.629.0
198965.140.524.6
199063.942.521.4
199162.944.218.7
199262.446.515.9
199361.048.112.9
199462.948.714.2
199563.548.215.3
199664.048.615.4
199762.650.012.6
199863.650.413.2
199964.353.610.7
200064.554.210.3
200163.154.09.1
200264.556.87.7
200361.957.64.3
200463.059.33.7
200562.560.52.0
200662.860.91.9
200762.159.92.2
200859.458.70.7
200958.156.12.0
201056.758.0-1.3
201154.458.4-4.0
201254.556.7-2.2
201353.657.7-4.1
201451.558.8-7.3
201551.462.6-11.2
201652.963.2-10.3
201754.364.1-9.8

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
under 2%2–4%4–6%6–8%8% and up
StatePopulationAsian share
California39,538,22315.4%
New Jersey9,288,99410.2%
New York20,201,2499.6%
Washington7,705,2819.5%
Nevada3,104,6148.8%
Massachusetts7,029,9177.2%
Virginia8,631,3937.1%
Maryland6,177,2246.8%
Illinois12,812,5085.9%
Texas29,145,5055.4%
Minnesota5,706,4945.2%
District of Columbia689,5454.9%
Connecticut3,605,9444.8%
Oregon4,237,2564.6%
Georgia10,711,9084.5%
Delaware989,9484.3%
Pennsylvania13,002,7003.9%
Arizona7,151,5023.6%
Rhode Island1,097,3793.5%
Colorado5,773,7143.5%
Michigan10,077,3313.3%
North Carolina10,439,3883.3%
Florida21,538,1873.0%
Wisconsin5,893,7183.0%
Kansas2,937,8802.9%
Nebraska1,961,5042.7%
New Hampshire1,377,5292.6%
Ohio11,799,4482.5%
Indiana6,785,5282.5%
Utah3,271,6162.5%
Iowa3,190,3692.4%
Oklahoma3,959,3532.3%
Missouri6,154,9132.2%
Tennessee6,910,8402.0%
Louisiana4,657,7571.9%
Vermont643,0771.8%
New Mexico2,117,5221.8%
South Carolina5,118,4251.8%
Arkansas3,011,5241.7%
North Dakota779,0941.7%
Kentucky4,505,8361.6%
Alabama5,024,2791.5%
South Dakota886,6671.5%
Idaho1,839,1061.5%
Maine1,362,3591.2%
Mississippi2,961,2791.1%
Wyoming576,8510.9%
West Virginia1,793,7160.8%
Montana1,084,2250.8%

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)
65"70"75"80"85"90"Gn=175mean 75.2"G/Fn=70mean 78.6"Fn=142mean 80.6"F/Cn=74mean 82.1"Cn=67mean 83.6"
bin width
view
position mean
HeightGG/FFF/CC
65"00000
66"00000
67"00000
68"00000
69"20000
70"00000
71"40000
72"130000
73"170000
74"220000
75"360000
76"351000
77"2412000
78"1919610
79"3241910
80"0103930
81"0451151
82"0019248
83"0072224
84"001824
85"00008
86"00001
87"00001
88"00000
89"00000
90"00000

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.