Fundamentals of Data Visualization – Free Book (BSCS/BS Data Science)

BS Computer Science and BS Data Science students taking a Data Visualization elective can read the complete textbook “Fundamentals of Data Visualization: A Primer on Making Informative and Compelling Figures” by Claus O. Wilke, free from its official source, clauswilke.com/dataviz. It is a 30-chapter book, in three parts the author himself declares — From Data to Visualization, Principles of Figure Design, and Miscellaneous Topics — that teaches how to choose the right chart for a message (amounts, distributions, proportions, relationships, geospatial data, uncertainty), then how to design that chart well (color, labeling, panels, honesty about scale), using real, worked datasets throughout: Titanic passengers, blue jay measurements, U.S. Census figures, chocolate-bar taste ratings, and more.

What makes this book genuinely distinctive among free data-visualization texts is a choice the author states explicitly in his own FAQ: it contains zero programming code, on purpose. Nearly every figure was made with R and ggplot2, but Wilke deliberately teaches the underlying principles of good visualization — independent of any specific software — rather than a how-to-code book. Published by O’Reilly Media in 2019, the free web edition is, in the author’s own words, “the complete author manuscript before final copy-editing,” kept permanently free online alongside the paid print and ebook editions sold by retailers.

Book Overview

CourseData Visualization
Degree ProgramsBS Computer Science, BS Data Science (BSCS/BS DS elective, per this book’s typical placement)
LevelUniversity — intermediate, principles-based; no programming or advanced-math prerequisite, though Chapters 8, 14 and 16 (distributions, trends, uncertainty) are easier with an introductory statistics course alongside
Edition1st edition, O’Reilly Media, Inc., 2019 (ISBN 978-1-492-03108-6). The free web edition is the complete author manuscript, maintained permanently online
Author(s)Claus O. Wilke
Structure30 chapters in 3 author-declared parts — Part I: From Data to Visualization (Chapters 1–16), Part II: Principles of Figure Design (Chapters 17–26), Part III: Miscellaneous Topics (Chapters 27–30)
ExercisesNo formal end-of-chapter exercise sets; each chapter instead works through real, named datasets (Titanic passengers, blue jay measurements, U.S. county populations, chocolate-bar ratings, and more) as applied case studies
LanguageEnglish
LicenseCreative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0), confirmed from the book’s own front matter — Model: Link-only
FormatFree official HTML edition only (no official PDF); paid print and ebook editions available separately from retailers

Chapter List

Part 1: From Data to Visualization · Chapter 1: Introduction

Difficulty: Easy · Key topics: aesthetics vs. accuracy, ugly/bad/wrong figures, the book’s three parts, static vs. interactive visualization

Wilke opens by framing data visualization as part art and part science: a figure must accurately convey the data (never mislead or distort a comparison) while also being aesthetically clear enough that a reader can actually inspect it. He notes that scientists tend to get the science right but not the art, while designers often do the opposite, and that this book is written for both audiences. The chapter scopes the book tightly to static visualizations for print, online, or slides — no interactive visuals, no movies, no instruction in any specific software — and previews its three parts: chart types organized by the message they convey, principles of figure design, and miscellaneous topics like file formats and storytelling.

Key Points:

  • A visualization must satisfy two goals at once: it must not mislead about the data, and it must be visually clear enough to be read correctly.
  • Wilke labels flawed example figures throughout the book as ugly (aesthetic problems only), bad (perception problems — unclear or misleading), or wrong (mathematically incorrect).
  • Part I organizes chart types by the message they send (amount, distribution, proportion, association, trend), not by variable count/type as statistics texts usually do.
  • Part II covers aesthetic design choices (color, labeling, panels); Part III covers file formats, software choice, and storytelling.
  • The book deliberately covers only static visualizations for print, online, or presentation slides — not interactive dashboards or animation, except one section in the uncertainty chapter.

Memory Tip: Remember the three-way rating scale as a severity ladder: ugly is a look problem, bad is a reading problem, wrong is a math problem — and only “wrong” means the numbers themselves lie.

Common Mistake: Assuming a “good-looking” figure is automatically an accurate one. Wilke’s own examples show a figure can be visually calm and still mathematically wrong (e.g. bars with no numeric axis at all).

Important Questions:

  • What is the difference between a “bad” and a “wrong” figure in this book’s terminology? A “bad” figure has a perception problem — it is unclear, overly complex, or creates a misleading visual impression — while a “wrong” figure has a mathematics problem: it is objectively, numerically incorrect regardless of how it is perceived.
  • Why does the book organize chart types in Part I by message rather than by data type, unlike most statistics textbooks? Wilke argues that only statisticians find organization by number/type of variable helpful; most people instead think in terms of the message they want to send (how large, how it is composed, how it relates to something else), so Part I is organized around those messages instead.

Part 1: From Data to Visualization · Chapter 2: Visualizing Data: Mapping Data onto Aesthetics

Difficulty: Easy · Key topics: aesthetics, position/shape/size/color, continuous vs. discrete data, scales, one-to-one mapping

This chapter introduces the book’s core vocabulary: every visualization maps data values onto aesthetics — quantifiable graphical properties such as position, shape, size, color, and line width. It distinguishes aesthetics that can represent continuous data (position, size, color, line width) from those that generally can only represent discrete data (shape, line type), and it catalogs the basic data types a visualization might encode: continuous/discrete numerical, unordered/ordered categorical (factors), dates, and free text. Using a dataset of daily temperature normals for four U.S. cities, Wilke shows that a scale is the specific, one-to-one mapping between data values and an aesthetic’s values, and that the same dataset can be mapped onto very different visualizations (a line plot vs. a colored grid) depending on which variables are assigned to which aesthetics.

Key Points:

  • An aesthetic is any quantifiable visual property (position, shape, size, color, line width) that a data value can be mapped onto.
  • Position, size, color, and line width can represent continuous data; shape and line type usually can only represent discrete data.
  • Data types encountered in visualization: quantitative continuous, quantitative discrete, qualitative unordered (factors), qualitative ordered (ordered factors), dates/times, and text.
  • A scale defines the mapping between data values and aesthetic values, and a valid scale must be one-to-one (each data value maps to exactly one aesthetic value and vice versa).
  • The same dataset can be validly visualized in more than one way by choosing different variable-to-aesthetic mappings; a typical basic figure uses about three scales, but more are possible.

Memory Tip: Think “DAPS”: Data type → Aesthetic → Position/shape/size/color → Scale. Every figure in this book can be decomposed by asking which data variable was mapped to which aesthetic via which scale.

Common Mistake: Treating shape or line type as if it could represent a continuous, ordered quantity (e.g. “bigger triangle = more”) — these aesthetics do not have a natural perceived order, so readers cannot reliably rank values encoded this way.

Important Questions:

  • What condition must a scale satisfy to be valid, and what happens if it is violated? A scale must be one-to-one: each specific data value must map to exactly one aesthetic value, and vice versa. If a scale isn’t one-to-one, the resulting visualization becomes ambiguous — a reader cannot recover the underlying data value from what they see.
  • Which four aesthetics can represent continuous data, and which two are generally limited to discrete data? Position, size, color, and line width can represent continuous data; shape and line type can usually only represent discrete data, since there is no natural perceived ordering among different shapes or dash patterns.

Part 1: From Data to Visualization · Chapter 3: Coordinate Systems and Axes

Difficulty: Medium · Key topics: Cartesian coordinates, linear vs. log scales, square-root scales, polar coordinates, map projections

Every 2D visualization needs two position scales and a way to arrange them — together these form a coordinate system. Wilke covers the standard Cartesian system, where axes are linear and invariant under unit changes, then introduces nonlinear axes: logarithmic scales (the natural choice for ratios and multiplicative data, where 1 is the meaningful midpoint and 0 can never appear) and square-root scales (useful for area-like data such as geographic regions, but with awkward, arbitrary tick placement). The chapter closes with curved-axis systems — polar coordinates, useful for cyclical data like days of the year — and geospatial projections, needed because a spherical globe cannot be flattened onto Cartesian axes without distortion.

Key Points:

  • A Cartesian coordinate system is invariant under linear unit transformations — changing units (e.g. Fahrenheit to Celsius) does not change the figure’s shape as long as the axes are relabeled accordingly.
  • On a log scale, equal steps correspond to multiplication by a constant factor; the natural midpoint is 1 (not 0), and the value 0 can never be shown.
  • Log scales are the natural choice for visualizing ratios and for data spanning many orders of magnitude; a square-root scale is an alternative when the data must include 0.
  • Polar coordinates suit periodic/cyclical data (e.g. day-of-year temperature) because the two ends of the angular axis join up logically.
  • Map projections are always a compromise: a projection can preserve angles (conformal, e.g. Mercator) or areas (equal-area, e.g. Goode homolosine) but never both at once.

Memory Tip: “Log scales multiply, linear scales add.” If a unit step on an axis should mean ×10 rather than +10, you need a log axis — and its natural zero-point equivalent is 1, not 0.

Common Mistake: Choosing a whole-world map projection (like Mercator) for a choropleth without considering that it will visually exaggerate areas near the poles, distorting the reader’s sense of which regions are actually largest.

Important Questions:

  • Why can the value 0 never appear on a logarithmic axis? Because log(0) is negative infinity, so 0 lies infinitely far from any other value on a log scale; reaching it would require an infinite number of divisions by a finite value, which is not possible.
  • What is the fundamental trade-off in every map projection? A projection can be conformal (preserving angles/shapes accurately, like the Mercator projection) or equal-area (preserving relative areas accurately, like the Goode homolosine), but because a curved surface cannot be flattened without distortion, no projection can preserve both angles and areas at once.

Part 1: From Data to Visualization · Chapter 4: Color Scales

Difficulty: Medium · Key topics: qualitative scales, sequential scales, diverging scales, choropleth, accent colors

Wilke identifies three distinct jobs color can do in a visualization, each requiring a different type of color scale. Qualitative scales distinguish unordered groups (e.g. countries or regions) using colors that look equally weighted, with no color standing out or implying order. Sequential scales represent ordered data values (e.g. income, temperature) using a smooth progression from dark to light, single-hue or multi-hue, and are the basis of choropleth maps that color geographic regions by a data value. Diverging scales handle data with a meaningful midpoint (e.g. positive/negative, or a 50% threshold), built as two sequential scales joined at a light-colored center. Finally, accent color scales pair a set of subdued baseline colors with a few strong, saturated colors to highlight specific elements without letting the baseline colors compete for attention.

Key Points:

  • Use a qualitative color scale for unordered categories; the colors must look distinct but equivalent, with none implying rank.
  • Use a sequential color scale to represent an ordered data value; it must vary in a way that is perceived as uniform across its full range.
  • A choropleth map colors geographic regions by a data value using a sequential (or diverging) scale.
  • Use a diverging color scale when data has a meaningful midpoint (zero, or another threshold like 50%); it must be visually balanced in both directions from that midpoint.
  • Accent scales pair subdued baseline colors with a few strong colors to highlight specific data points; baseline colors must stay muted or they compete with the highlight.

Memory Tip: Match the scale to the question: “Which group?” → qualitative. “How much?” → sequential. “Above or below what?” → diverging. “What should I notice?” → accent.

Common Mistake: Using a diverging color scale on data that has no real midpoint (or an unbalanced one), which visually implies a meaningful zero/threshold where none exists and misleads the reader about which values are “high” or “low”.

Important Questions:

  • What is the key requirement of a valid qualitative color scale, beyond the colors simply looking different? No single color should stand out relative to the others, and the colors should not create the appearance of an order, since the categories they represent have no inherent order.
  • When is a diverging color scale the right choice instead of a sequential one? When the data has a meaningful midpoint the reader needs to see at a glance — for example, positive vs. negative values around zero, or a percentage relative to a 50% threshold — so that direction from the midpoint, not just magnitude, carries information.

Part 1: From Data to Visualization · Chapter 5: Directory of Visualizations

Difficulty: Easy · Key topics: chart-type lookup, amounts, distributions, proportions, x–y relationships, geospatial, uncertainty

This chapter is the book’s own visual table of contents: a quick-reference map from “what I want to show” to “which chapter covers it.” It is organized into the same six message categories used throughout Part I — amounts (bars, dot plots, heatmaps), distributions (histograms, density plots, ecdfs, boxplots, violins, ridgelines), proportions (pie charts, stacked/side-by-side bars, mosaic plots, treemaps, parallel sets), x–y relationships (scatter plots, bubble charts, line graphs, correlograms), geospatial data (maps, choropleths, cartograms), and uncertainty (error bars, confidence bands, quantile dotplots, hypothetical outcome plots). For each entry, Wilke briefly names which specific visualization fits which scenario and points to the full chapter where it is taught.

Key Points:

  • The chapter is organized by six message categories: amounts, distributions, proportions, x–y relationships, geospatial data, and uncertainty — the same organizing principle used across Part I.
  • For amounts: bars or dot plots for a single set of categories; heatmaps when categories are shown on both axes.
  • For distributions: histograms/density plots for one distribution; boxplots, violins, strip charts, or ridgelines when comparing many distributions at once.
  • For proportions: pie charts and side-by-side bars for a single snapshot; stacked bars or stacked densities across multiple conditions; mosaic plots, treemaps, or parallel sets for proportions nested by more than one grouping variable.
  • For x–y relationships: scatter plots for two variables, bubble charts for three, contour/2D-bin plots when scatter plots overplot, and line graphs when the x axis is time or another ordered quantity.

Practice Tip: Treat this chapter as a lookup table, not reading material — bookmark it, and whenever you are staring at a dataset unsure what chart to make, scan this chapter first to find which of the book’s later chapters actually applies.

Common Mistake: Skipping straight past this chapter on a first read because it looks like a summary of chapters not yet read — it is most useful in reverse, as a fast index to return to once you already know the rest of the book and just need to find the right chapter for a new dataset.

Important Questions:

  • According to this chapter, when should you reach for a mosaic plot or treemap instead of a simple pie chart or stacked bar? When proportions are specified according to more than one grouping variable at once (nested proportions) — a single pie chart or stacked bar can only cleanly represent one grouping variable’s proportions.
  • Per this chapter, what is the recommended alternative when a regular scatter plot suffers from overplotting with very large numbers of points? Contour lines, 2D bins, or hex bins, which summarize point density instead of drawing every individual overlapping point.

Part 1: From Data to Visualization · Chapter 6: Visualizing Amounts

Difficulty: Easy · Key topics: bar plots, grouped/stacked bars, dot plots, heatmaps, bar ordering

Using examples like weekend box-office gross and Titanic passenger counts, Wilke covers the standard toolbox for visualizing a set of numeric amounts across categories. The bar plot is the default choice, but long category labels are better handled by swapping to horizontal bars than by rotating text. Bars should generally be sorted by size unless the categorical variable has a natural order (like age groups), in which case that natural order should be preserved. Grouped bars compare two categorical variables side by side; stacked bars are appropriate only when the sum of the stacked values is itself meaningful (like total passenger counts), not when it is not (like stacking two median incomes). When bars are impractical — because a meaningful zero baseline doesn’t highlight the real differences, or because there are too many groups — dot plots or heatmaps (color instead of position) become the better choice.

Key Points:

  • For long category labels, prefer horizontal bars over rotated axis text, which Wilke finds consistently harder to read.
  • Sort bars by size unless the categorical variable has a natural, meaningful order (e.g. age groups), in which case preserve that order instead.
  • Stack bars only when the sum of the stacked values is itself a meaningful quantity (e.g. total passenger count); do not stack values whose sum is meaningless (e.g. two median incomes).
  • A dot plot places a dot at the data value’s position instead of drawing a full bar, which is useful when the meaningful range of the data doesn’t start at zero.
  • A heatmap maps amounts onto color instead of position, useful for very large numbers of categories where individual bars or dots would be too busy to read.

Practice Tip: Take any bar chart you’ve made recently and check its sort order against this rule: is the category variable ordered (keep that order) or unordered (sort by bar size)? Most “confusing” bar charts fail exactly this test.

Common Mistake: Stacking bars whose values don’t sum to anything meaningful (e.g. stacking two different groups’ median incomes on top of each other) — the combined bar height then represents a number with no real-world interpretation.

Important Questions:

  • When is it appropriate to stack bars on top of each other, according to this chapter? Only when the sum of the individual stacked amounts is itself a meaningful quantity, such as stacking counts of men and women to get a meaningful total passenger count — not when the sum has no real interpretation, such as stacking two groups’ median incomes.
  • Why does the chapter prefer horizontal bars with long labels over vertical bars with rotated labels? Rotated labels are, in Wilke’s experience, consistently harder to read and look awkward; swapping the axes so bars run horizontally keeps all text, including the category labels, horizontally oriented and produces a more compact, more legible figure.

Part 1: From Data to Visualization · Chapter 7: Visualizing Distributions: Histograms and Density Plots

Difficulty: Medium · Key topics: histogram, bin width, kernel density estimation, bandwidth, stacked/overlapping histograms, age pyramid

Using Titanic passenger ages, Wilke introduces the two standard tools for visualizing a single distribution. A histogram bins the data and draws bars proportional to each bin’s count; its appearance depends heavily on the arbitrary choice of bin width, so multiple bin widths should always be tried. A density plot instead estimates a continuous curve via kernel density estimation, controlled by a bandwidth parameter that behaves like bin width; it scales the y axis so the area under the curve equals 1, and can misleadingly suggest data exists (e.g. negative ages) where none does. The chapter then tackles visualizing two or more distributions at once: stacked and overlapping histograms are both flagged as confusing (unclear baselines, false impression of a third group), while overlapping density plots, fractional/proportional densities, or the age-pyramid trick (for exactly two groups) work better.

Key Points:

  • A histogram’s appearance depends critically on bin width: too small looks noisy and overly peaky; too large hides real features of the distribution.
  • Kernel density estimation draws a small curve (the kernel, usually Gaussian) at every data point and sums them; its bandwidth parameter plays the same role as histogram bin width.
  • Density curves are scaled so the total area under the curve equals 1, which makes the y-axis values themselves not very interpretable in isolation.
  • Kernel density estimates can create the appearance of data (especially in the tails) where none exists, e.g. implying negative ages.
  • Stacked and overlapping histograms are both problematic for comparing two or more distributions (unclear baselines, confusing overlap); overlapping density plots or proportional/fractional densities usually work better.

Practice Tip: Whenever you make a histogram, redraw it at two or three different bin widths before finalizing it — if the shape of your conclusion changes dramatically between bin widths, the “pattern” you saw may be an artifact of that one arbitrary choice.

Common Mistake: Trusting a single default bin width or bandwidth from plotting software without ever varying it — both bin width and bandwidth are described in this chapter as consequential, largely arbitrary parameters that materially change what the figure appears to show.

Important Questions:

  • What is the “bandwidth” parameter in kernel density estimation, and what happens if it is set too large or too small? Bandwidth controls the width of the kernel curve placed at each data point; too small a bandwidth produces an overly peaky, visually busy estimate that obscures the main trend, while too large a bandwidth smooths away real, smaller features of the distribution.
  • Why does the chapter recommend against stacked histograms for comparing two distributions, such as ages by gender? With stacked histogram bars it is never clear from the figure alone where each bar actually starts (at zero, or where the color changes), so the reader cannot correctly read either group’s individual counts or compare group heights directly — this can make two groups look like three, or hide a real difference in the underlying averages.

Part 1: From Data to Visualization · Chapter 8: Visualizing Distributions: Empirical Cumulative Distribution Functions and Q-Q Plots

Difficulty: Hard · Key topics: ecdf, ranking, skewed distributions, power laws, q-q plots, log-log plots

Where histograms and density plots require arbitrary parameter choices, empirical cumulative distribution functions (ecdfs) and quantile–quantile (q-q) plots represent all of the data with no parameters at all — at the cost of being less intuitive. Using a hypothetical class of exam scores, Wilke shows how ranking students and plotting rank against score produces an ecdf, from which exact quantiles (like “25% of students scored below 75”) can be read directly — useful, he notes, for picking defensible grade cutoffs. The chapter then tackles highly skewed, heavy-tailed distributions (city populations, word frequencies) where density plots and ecdfs both fail visually near zero; log-transforming the data, or plotting a descending ecdf on log–log axes (where true power laws appear as straight lines), recovers a readable figure. Q-q plots extend this idea by plotting observed values against theoretical values expected under a reference distribution (usually normal); points falling on the diagonal confirm the assumed distribution fits.

Key Points:

  • Ecdfs and q-q plots require no arbitrary parameter choices (unlike histogram bin width or density bandwidth) and represent the complete dataset.
  • An ecdf plots cumulative rank/frequency against value; it can be built ascending or descending, and lets exact quantiles be read off directly.
  • Heavy-tailed, highly skewed distributions (e.g. city populations, word frequencies) are often power-law or log-normal distributed; log-transformation, or a descending ecdf on log–log axes, is needed to see their structure.
  • On a log–log descending ecdf plot, a true power-law distribution appears as a straight line.
  • A q-q plot plots observed data ranks against the values expected under an assumed reference distribution (commonly normal); points on the diagonal confirm the data follow that distribution.

Practice Tip: Next time you need to pick a cutoff (a grade boundary, a threshold for “high” vs “low”), plot the ecdf first — the flat/steep segments show you exactly where a small change in cutoff would flip many borderline cases, which a histogram alone will not show you.

Common Mistake: Trying to visualize a genuinely heavy-tailed, skewed dataset (e.g. county populations) with a plain density plot or linear-axis ecdf and concluding “there’s nothing to see here” — the real structure is often only visible after a log transform or on log–log axes.

Important Questions:

  • What is the single biggest advantage ecdfs and q-q plots have over histograms and density plots? They require no arbitrary parameter choices (no bin width, no bandwidth/kernel) and show the entire dataset directly, so the resulting figure is a faithful representation of the data rather than one particular interpretation of it.
  • How can you visually test whether a dataset follows a true power-law distribution, according to this chapter? Plot a descending empirical cumulative distribution with both axes on a logarithmic scale; if the data truly follow a power law, the tail of this plot will appear as a nearly straight line.

Part 1: From Data to Visualization · Chapter 9: Visualizing Many Distributions at Once

Difficulty: Medium · Key topics: boxplot, violin plot, strip chart, jittering, sina plot, ridgeline plot

When many distributions need to be compared at once (e.g. temperature by month), individual histograms or density plots stop working, and the chapter introduces a family of alternatives. The boxplot, invented by Tukey and popular because it was easy to draw by hand, summarizes a distribution’s quartiles compactly but hides features like bimodality. Violin plots (rotated, mirrored density estimates) show that nuance but inherit density estimation’s tendency to imply data where none exists; strip charts (jittered raw points) and sina plots (points spread proportional to local density) offer complementary honesty about the actual data. For visualizing very large numbers of distributions, especially trends over time, ridgeline plots (staggered, overlapping density curves) scale well — Wilke’s own example shows nearly 100 distributions of movie lengths across a century in one readable figure.

Key Points:

  • A boxplot divides data into quartiles in a standardized way; it is compact and easy to compare across groups but cannot show bimodal or multi-peaked distributions.
  • A violin plot is a density estimate rotated 90° and mirrored; unlike a boxplot it will show bimodality, but it inherits density estimation’s risk of implying data density where the data are actually sparse.
  • A strip chart plots every individual data point directly (often with jittering, small random horizontal displacement, to reduce overplotting).
  • A sina plot combines a violin plot and jittered points by spreading points in proportion to the local point density.
  • A ridgeline plot staggers many density curves vertically (typically by time or another ordered variable) and scales well to dozens or even ~100 distributions in one figure.

Practice Tip: If a boxplot of your data looks “boring” or suspiciously symmetric, redraw it as a violin plot first — boxplots cannot reveal bimodal clusters (two separate humps) hiding inside what looks like one smooth quartile range.

Common Mistake: Using a ridgeline plot built from histograms instead of density curves for many groups — the chapter notes histogram bars from adjacent groups tend to align at the same x positions in confusing ways that density curves avoid.

Important Questions:

  • What key feature of a distribution can a violin plot reveal that a boxplot cannot? Bimodality (two distinct peaks/clusters within one group’s data) — a boxplot only summarizes quartiles and a median, so it cannot show that a distribution actually has two separate clusters, while a violin plot’s full density shape will.
  • What is a sina plot, and what two techniques does it combine? A sina plot is a hybrid of a violin plot and jittered strip-chart points: individual data points are shown directly (like a strip chart) but spread out horizontally in proportion to the local point density at that y value (like a violin plot’s shape), showing both the raw data and the distribution’s shape at once.

Part 1: From Data to Visualization · Chapter 10: Visualizing Proportions

Difficulty: Medium · Key topics: pie chart, stacked bars, side-by-side bars, stacked densities, proportion of the total

Wilke argues there is no single best way to show proportions — the right choice depends on the dataset. Using German Bundestag seat data, he shows a pie chart working well for a single snapshot with simple fractions, while a five-company, three-year market-share example demonstrates where pie charts (and stacked bars) fail: individual proportions become hard to compare, and stacked bars shift position awkwardly across a sequence, making side-by-side bars the better choice there. For two-category proportions changing continuously (e.g. Rwandan parliament gender share over time), stacked bars or stacked densities work cleanly because there is no shifting-baseline problem with only two groups. When the goal is comparing each part’s own trend against the whole (e.g. health status by age), plotting each part as its own proportion of the total, in a separate small panel, beats stacking everything into one figure.

Key Points:

  • Pie charts work well for simple fractions (halves, thirds, quarters) and single small snapshots, but are hard to compare when there are many slices or many time points.
  • Sequences of stacked bar charts have a general weakness: internal bars shift position across the sequence, making within-group comparison across time difficult.
  • Side-by-side bars are preferred when the goal is direct comparison of individual proportions to each other.
  • Stacking works cleanly for exactly two categories (e.g. proportion female vs. male) because there is no internal shifting problem with just two stacked segments.
  • Plotting each subgroup’s proportion of the total in its own small panel (rather than one stacked plot) often makes absolute trends within each subgroup easier to read.

Memory Tip: “Two groups over time → stack them; five groups over time → side by side” — stacked bars only stay clean when there are just two segments per bar.

Common Mistake: Defaulting to a pie chart for a multi-year, multi-category dataset (e.g. five companies’ market share across three years) — pie charts become nearly unreadable once there are more than a handful of slices or more than one time point to compare.

Important Questions:

  • According to this chapter, when do pie charts genuinely work well? When the dataset is small (few categories, one snapshot in time) and the goal is emphasizing simple fractions like one-half or one-third — the German Bundestag seat-share example is given as a case where a pie chart is the best option.
  • Why do sequences of stacked bar charts (multiple years, for example) become difficult to read once there are more than two stacked categories? Because the position of any internal (non-bottom) segment shifts depending on the size of the segments below it, so comparing that one category’s value across the sequence requires mentally correcting for a moving baseline, which side-by-side bars avoid.

Part 1: From Data to Visualization · Chapter 11: Visualizing Nested Proportions

Difficulty: Hard · Key topics: mosaic plot, treemap, nested pie, parallel sets, double-counting

Using a dataset of 106 Pittsburgh bridges (by material and era), this chapter tackles proportions broken down by more than one categorical variable at once. It opens with two flawed approaches — a combined pie chart that double-counts bridges (slices summing to 135%) and side-by-side bars that hide the overlap between categories — before introducing mosaic plots (which require every category to fully partition the data, and vary both rectangle width and height) and treemaps (which recursively nest rectangles and don’t require that same full-partition assumption). Nested pie charts are shown as a valid but weaker alternative (more wasted white space, thin unreadable slices) compared to treemaps. For three or more grouping variables at once, parallel sets plots use connected, colored bands to show how subgroups relate, with the choice of coloring variable and ordering strongly affecting how readable the result is.

Key Points:

  • A pie chart or bar chart built by combining two overlapping categorical breakdowns without accounting for overlap will double-count observations (e.g. slices summing to more than 100%).
  • A mosaic plot requires every categorical variable shown to fully partition the dataset (every observation falls in exactly one combination), and varies both the width and height of each rectangle.
  • A treemap recursively nests rectangles by proportion and does not require the full-partition assumption a mosaic plot needs, so it works even when subdivisions of one group are unrelated to another’s.
  • Compared to treemaps, nested pie charts waste more space as unused white area and can produce very thin, hard-to-read slices for small subgroups.
  • A parallel sets plot uses colored, connected bands across multiple axes to show how three or more categorical variables relate; the choice of which variable defines the coloring, and the left-to-right ordering of the axes, strongly affects readability.

Memory Tip: “Mosaic needs a full partition; treemap doesn’t.” If your categories don’t cleanly cover every combination (e.g. some material/era pairs simply don’t exist), lean toward a treemap over a mosaic plot.

Common Mistake: Building a pie chart (or any area-based chart) from two overlapping categorical breakdowns of the same items without realizing each item is being counted once per breakdown — the resulting percentages silently exceed 100%.

Important Questions:

  • What critical assumption does a mosaic plot make that a treemap does not? A mosaic plot assumes every categorical variable shown fully partitions all the observations (every combination is a real, if possibly small, subset of the data); a treemap makes no such assumption and works even when one variable’s subdivisions have no relationship to another’s.
  • Why did the chapter’s first attempt at visualizing the Pittsburgh bridges data (a combined pie chart of material and era) fail? Because every bridge was counted once for its material and again for its era, the slices summed to 135% instead of 100%, meaning bridges were effectively double-counted in the chart.

Part 1: From Data to Visualization · Chapter 12: Visualizing Associations Among Two or More Quantitative Variables

Difficulty: Medium · Key topics: scatter plot, bubble chart, correlation coefficient, correlogram, PCA, paired data, slopegraph

Using measurements of 123 blue jay birds, Wilke works through the standard toolkit for relationships between quantitative variables: the scatter plot for two variables, the bubble chart for a third variable mapped onto point size (flagged as a weaker encoding, since size differences are harder to perceive than position differences), and scatter plot matrices for several variables. For four or more variables, correlograms visualize pairwise correlation coefficients as colored/sized tiles, though they are abstract and hide the underlying raw data; principal components analysis (PCA) offers dimension reduction that keeps more of the real structure visible, illustrated with a forensic glass-fragment dataset. The chapter closes on paired data (two related measurements per case, like CO2 emissions in 1970 vs. 2010): a scatter plot with an x=y diagonal line works for large samples, while a slopegraph (dots in two columns connected by lines) is preferred for small samples or when comparing more than two time points at once.

Key Points:

  • A bubble chart maps a third quantitative variable onto dot size; size differences are harder to perceive than position differences, so bubble charts are a weaker encoding than adding another position axis.
  • The correlation coefficient r ranges from -1 to 1; its sign shows whether variables move together (positive) or oppositely (negative), and it is invariant to shifting or rescaling the data.
  • A correlogram visualizes many pairwise correlation coefficients as a matrix of colored tiles or sized circles, useful once there are too many variables for an all-against-all scatter plot matrix.
  • Principal components analysis (PCA) reduces high-dimensional, correlated data to a small number of uncorrelated components, ordered so the first captures the most variation.
  • For paired data, a scatter plot with an x = y diagonal line reveals systematic shifts between paired measurements; a slopegraph (two columns of dots connected by lines) works better for small samples or more than two time points.

Practice Tip: Before reaching for a bubble chart to show a third variable, ask whether you could instead facet into an all-against-all scatter plot matrix or use color — the book shows bubble size differences are genuinely hard to read accurately, even when deliberately exaggerated.

Common Mistake: Reading a correlogram’s colored tiles as if they showed the raw data itself — correlograms are abstract summaries of pairwise correlation and can hide real patterns (like nonlinear relationships or outliers) that only the underlying scatter plot would reveal.

Important Questions:

  • Why does the chapter consider bubble charts a weaker way to encode a third quantitative variable than adding it as a position? Because human perception judges differences in position more accurately than differences in size/area, and because even the largest bubble in a figure must stay visually small relative to the whole plot, so real differences in the underlying values can correspond to barely perceptible size differences.
  • When is a slopegraph preferred over a simple paired scatter plot with an x = y line? When the sample size is small and the reader cares about the identity of each individual case, or when there are more than two time points to compare at once — a slopegraph can show three or more measurements per case as a connected path, which a single x = y scatter plot cannot.

Part 1: From Data to Visualization · Chapter 13: Visualizing Time Series and Other Functions of an Independent Variable

Difficulty: Medium · Key topics: line graph, dose-response curve, multiple time series, connected scatter plot, direct labeling

When one variable imposes a natural order on the data (usually time, but also things like an experimental treatment dose), line graphs connect the dots to emphasize that order. Wilke is candid that connecting lines technically implies data at points that were never observed, but accepts this as standard practice, sometimes with an explicit caption caveat. For a single time series, filling the area under the curve emphasizes overall trend but is only valid if the y axis starts at zero; for multiple series, direct labeling of each line beats a separate legend, reducing the reader’s need to look back and forth. The chapter’s most advanced tool is the connected scatter plot (or “phase portrait”), which plots two response variables against each other over time and connects points chronologically — this can reveal cyclical patterns (like recession/recovery spirals in economic PCA components) invisible in two separate line graphs, though research shows readers more easily misjudge order and direction in connected scatter plots than in ordinary line graphs.

Key Points:

  • A line graph is appropriate whenever the x variable imposes a natural order on the data, not only for time series — dose–response experiments are a non-time example.
  • Filling the area under a time series curve is only a valid, non-misleading choice when the y axis starts at zero.
  • For multiple time series in one figure, direct labeling of each line is preferred over a separate legend, since it removes the extra step of matching colors between plot and legend.
  • A connected scatter plot (phase portrait) plots two response variables against each other and connects points in chronological order, which can reveal cyclical relationships invisible in two separate line graphs.
  • Research cited in the chapter found readers are more likely to confuse order and direction in a connected scatter plot than in a regular line graph, though connected scatter plots can generate higher reader engagement.

Practice Tip: When a figure has more than two or three time series lines, drop the separate legend box entirely and try labeling each line directly at its endpoint — it almost always reduces the cognitive load of matching a color to a name.

Common Mistake: Shading the area under a time series curve when the y axis does not start at zero — the height of the shaded region at any point then represents the distance from an arbitrary baseline, not the actual data value, which can dramatically exaggerate small changes (the chapter’s Facebook stock-price example).

Important Questions:

  • What is a connected scatter plot, and what kind of pattern is it especially good at revealing? It is a scatter plot of two response variables plotted against each other, with points connected chronologically to trace a path over time; it is especially good at revealing cyclical relationships (loops or spirals), such as a recession/recovery cycle, that are hard to spot when the same two variables are shown as separate line graphs.
  • Why does the chapter caution against shading the area under a line graph that does not start its y axis at zero? Because the shaded area’s height at each point represents the distance from the (arbitrary) axis baseline rather than the actual data value, visually implying a magnitude relationship that isn’t really there and potentially exaggerating small real changes into what looks like a dramatic swing.

Part 1: From Data to Visualization · Chapter 14: Visualizing Trends

Difficulty: Hard · Key topics: moving average, LOESS, splines, functional-form fitting, log–linear/log–log plots, detrending, time-series decomposition

Using the 2009 Dow Jones index as a running example, this chapter covers how to smooth a noisy series to reveal an underlying trend. Simple moving averages are easy to understand but shorten the series and can leave small bumps; LOESS (locally weighted regression) and spline models both produce smoother, more flexible fits, though their exact shape depends on tunable parameters that can produce meaningfully different-looking curves from the same data. Wilke argues that fitting a curve of a known functional form (e.g. a straight line, or an exponential-then-plateau curve) is preferable when possible, since the fitted parameters then have real meaning; he specifically advises against fitting raw exponential curves directly and instead recommends fitting a straight line to log-transformed data, since ordinary least squares underweights the smallest values in a raw exponential fit. The chapter closes with detrending (dividing out a long-term trend to reveal deviations, e.g. housing bubbles) and full time-series decomposition into trend, cyclical, and remainder/noise components, demonstrated on the Keeling CO2 curve.

Key Points:

  • A moving average is the simplest smoothing method but shortens the resulting series and can still show small bumps caused by points entering/exiting the averaging window.
  • LOESS (locally estimated scatterplot smoothing) and spline models are more flexible than moving averages but their smoothness/shape depends on tunable parameters (window size, number of knots).
  • Fitting a curve of a specific, meaningful functional form (straight line, exponential-plus-plateau, etc.) is preferable to a generic smoother when a plausible form is known, since its parameters can then be interpreted directly.
  • For apparently exponential growth, fit a straight line to log-transformed y values rather than fitting the raw exponential curve directly, since ordinary least squares on raw exponential data systematically under-weights the smallest data points.
  • Detrending (dividing the series by its long-term trend) and full time-series decomposition (trend + cyclical + remainder) both make deviations from an expected pattern — like a housing bubble — far more visible than the raw series alone.

Practice Tip: If you suspect a series grows exponentially, don’t fit the exponential curve directly — plot the y axis on a log scale (or log-transform y) and fit a straight line instead; this chapter explains why the direct exponential fit systematically distorts the small-value end of the curve.

Common Mistake: Trusting a smoothing curve’s exact shape (a LOESS or spline fit) as if it revealed a precise, parameter-free truth about the data — the chapter shows the same dataset can produce visibly different smoothers depending on window size or number of knots, none of which is “the” correct answer.

Important Questions:

  • Why does the chapter recommend fitting a straight line to log-transformed data rather than fitting an exponential curve directly to data suspected of exponential growth? Because ordinary least squares minimizes squared deviations, and for a raw exponential fit the largest data values produce vastly larger squared deviations than the smallest ones, so the fit is dominated by the largest values and systematically over- or under-shoots the smallest ones; log-transforming first and fitting a line avoids this imbalance.
  • What is the difference between “detrending” a time series and fully “decomposing” it, as described in this chapter? Detrending divides the actual series by its long-term trend to reveal deviations from that trend (e.g. housing bubbles); full decomposition goes further, separating the series into three additive components — the long-term trend, cyclical/seasonal fluctuations, and a remainder of random noise or unique events — whose sum recovers the original series.

Part 1: From Data to Visualization · Chapter 15: Visualizing Geospatial Data

Difficulty: Hard · Key topics: map projections, layers, choropleth, cartogram, Albers projection

This chapter builds on Chapter 3’s introduction to map projections, working through practical mapmaking. It covers longitude/latitude/datum basics, then the trade-offs of specific named projections: Mercator (conformal but badly area-distorting near the poles), the interrupted Goode homolosine (equal-area, at the cost of visible cuts through oceans and Antarctica), and the Albers projection commonly used for the U.S., which requires a deliberate decision about how to place Alaska and Hawaii relative to the lower 48 (Wilke explicitly flags scaling Alaska down to “fit” as misleading, since it visually shrinks the largest state). Maps are built from layers (terrain, roads, points of interest, labels), and choropleth maps work best when coloring a density (a quantity divided by area) rather than a raw total, since large-but-sparse regions like Alaska can otherwise dominate a map and mislead about where most people or values actually are. Cartograms, which distort each region’s size by a variable like population, are introduced as an alternative that corrects for this area/population mismatch.

Key Points:

  • Every map is built from stackable layers (terrain, roads, data points, labels); a scale bar and north arrow are recommended on essentially any map.
  • A choropleth map works most reliably when it colors a density (a quantity divided by area), since larger regions are otherwise perceived as representing larger amounts regardless of the actual data value.
  • Continuous color scales on a choropleth look appealing but are hard to read precisely; binning into 4–6 discrete color groups is usually more legible.
  • The Albers projection commonly used for U.S. maps requires a decision about Alaska/Hawaii placement; scaling Alaska down to visually “fit” alongside the lower 48 is explicitly labeled misleading, since Alaska is actually the largest state.
  • A cartogram distorts each region’s area to be proportional to a variable like population, correcting the mismatch between a region’s geographic size and its real-world weight in the data.

Memory Tip: “Choropleth = divide by area.” Before coloring regions by a raw count, ask whether that count should really be a density (per square kilometer, per capita) — otherwise the biggest regions will look the most important no matter what the underlying data says.

Common Mistake: Coloring a choropleth map by a raw total (like total income or total population) rather than a density, which lets a handful of enormous, sparsely-populated regions visually dominate the map even though they represent relatively little of the real-world total.

Important Questions:

  • Why does the chapter say choropleth maps work best when coloring a density rather than a raw total? Because human perception associates larger colored areas with larger amounts; if the color represents a raw total rather than a density (total divided by area), large-but-sparsely-populated regions will visually dominate the map and mislead the reader about where the data value is actually concentrated.
  • What is a cartogram, and what problem does it solve that a standard choropleth cannot? A cartogram deliberately distorts each region’s area to be proportional to a chosen variable (such as population), which corrects the standard choropleth problem where a geographically large but sparsely populated region visually overwhelms smaller, more populous ones.

Part 1: From Data to Visualization · Chapter 16: Visualizing Uncertainty

Difficulty: Hard · Key topics: error bars, confidence interval, credible interval, frequentist vs. Bayesian, confidence band, hypothetical outcome plot

The book’s longest chapter tackles what Wilke calls one of the hardest problems in data visualization: readers tend to interpret a plotted point as a precise value, even when uncertainty genuinely exists. He starts with frequency framing (e.g. a waffle chart of colored squares) as an intuitive way to make an abstract probability feel concrete, then works through error bars, showing with a chocolate-ratings dataset that five different error-bar conventions (standard deviation, standard error, 80/95/99% confidence intervals) look visually similar but mean very different things — a source of “deterministic construal error” when readers assume error bars represent minimums/maximums. The chapter carefully distinguishes frequentist confidence intervals (statements about the null hypothesis / repeated sampling) from Bayesian credible intervals (direct statements about where the true parameter likely lies), and explicitly debunks the common “eyeball overlap” rule of thumb for judging statistical significance from error bars. It closes with confidence bands for curve fits and hypothetical outcome plots (HOPs) — animated cycling through plausible outcomes — as an alternative for online or presentation contexts.

Key Points:

  • Frequency framing (e.g. a waffle chart of discrete colored squares) makes an abstract probability more intuitively graspable than a single numeric percentage.
  • The standard deviation describes spread in the population; the standard error describes how precise an estimate of a parameter (like the mean) is — a dataset can have a large standard deviation and a small standard error at the same time.
  • A frequentist confidence interval makes a statement about the null hypothesis under repeated sampling; a Bayesian credible interval makes a direct probability statement about where the true parameter value lies — these are not the same thing despite often looking similar numerically.
  • Judging statistical significance by whether two error bars visually overlap is explicitly flagged as an unreliable rule of thumb; the correct approach is to compute a confidence interval on the difference itself.
  • A hypothetical outcome plot (HOP) animates through a sequence of individually plausible outcomes rather than showing one static summary, avoiding the “deterministic construal error” static uncertainty visualizations can create.

Practice Tip: Before adding error bars to any figure, write in the caption exactly what they represent (standard deviation? standard error? which confidence level?) — the chapter shows five different, equally common error-bar conventions that look nearly identical but mean very different things.

Common Mistake: Judging whether two groups are “significantly different” just by eyeballing whether their error bars overlap — this chapter explicitly names this as an unreliable rule of thumb; the correct method is to compute a confidence interval on the difference between the two groups directly.

Important Questions:

  • What is the difference between the standard deviation and the standard error, and why does confusing them matter? The standard deviation describes how spread out individual observations are in the population, while the standard error describes how precise an estimate (such as the sample mean) is; a dataset can have a large standard deviation (individuals vary a lot) yet a small standard error (the mean is still estimated precisely, e.g. with a large sample), so conflating the two can badly misrepresent what an error bar is actually telling the reader.
  • How does a Bayesian credible interval differ conceptually from a frequentist confidence interval, per this chapter? A Bayesian credible interval is a direct statement about where the true parameter value is likely to lie, calculated from the posterior distribution; a frequentist confidence interval instead makes a statement about the null hypothesis under repeated sampling — it describes where the true parameter is likely not to be excluded, rather than directly stating where it is.

Part 2: Principles of Figure Design · Chapter 17: The Principle of Proportional Ink

Difficulty: Medium · Key topics: proportional ink, truncated bar axes, log-scale bars, pie-chart area perception

Opening Part II, this chapter states Bergstrom and West’s principle of proportional ink: the size of any shaded area in a figure must be proportional to the data value it represents. Using median income by Hawaiian county and a Facebook stock-price chart, Wilke shows the most common violation — bars or shaded areas that don’t start at a meaningful zero — which visually exaggerates small real differences into what looks like a dramatic gap. He extends the principle to logarithmic axes (bars there must start at 1, the log scale’s natural midpoint, representing ratios rather than amounts; forcing them to start elsewhere makes bar length meaningless) and to direct area encodings like pie charts and treemaps, noting that even a chart that technically satisfies proportional ink (like a pie chart) is still perceived less accurately than the equivalent bar chart, because humans judge distances more accurately than areas.

Key Points:

  • The principle of proportional ink: the size of a shaded area in a visualization must be proportional to the data value it represents.
  • Bar and shaded-area charts on a linear scale must start at 0; starting elsewhere breaks proportional ink and exaggerates differences.
  • On a logarithmic scale, bars represent ratios and must start at 1 (the log scale’s natural midpoint), not 0; a log-scale bar chart of raw amounts (not ratios) starting anywhere is inherently problematic.
  • A pie chart technically satisfies proportional ink (area is proportional to angle/value), but human perception judges areas less accurately than the equivalent lengths in a bar chart.
  • It is valid to show differences (e.g. year-over-year change) as bars starting at zero, even when the underlying amounts themselves aren’t well suited to a bar chart.

Memory Tip: “Linear bars start at 0; log-scale ratio bars start at 1.” Both are versions of the same rule — the bar’s baseline must be the scale’s true neutral point, or the bar length lies about the data.

Common Mistake: Truncating a bar or line-fill chart’s y axis so it doesn’t start at zero, to make a modest real difference (e.g. a stock’s small price dip) look dramatic — a classic and explicitly-named violation of proportional ink in financial and news graphics.

Important Questions:

  • What is the principle of proportional ink, and what is its most common violation? It states that the sizes of shaded areas in a visualization must be proportional to the data values they represent; its most common violation is a bar or shaded-area chart whose baseline doesn’t start at a meaningful zero, which makes the visual length of the bar misrepresent the true data value.
  • Why must bars on a logarithmic axis start at 1 rather than 0? Because 0 can never appear on a log scale (it lies infinitely far away), and 1 is the log scale’s natural midpoint representing “no change” in a ratio; a log-scale bar therefore represents a ratio relative to 1, so starting it anywhere else would misrepresent that ratio.

Part 2: Principles of Figure Design · Chapter 18: Handling Overlapping Points

Difficulty: Medium · Key topics: overplotting, transparency, jittering, 2D histograms, hexagonal binning, contour lines

When many points overlap in a scatter plot (a problem Wilke calls “overplotting”), several escalating strategies apply depending on dataset size. For moderate overplotting caused by rounded data (fuel economy data with only a handful of distinct values), partial transparency reveals density by shading, and adding a small amount of random jitter prevents identical points from perfectly hiding each other — though too much jitter distorts the data’s real positions. For very large datasets (100,000+ flight records) where transparency alone stops working, 2D histograms (rectangular bins) or hexagonal binning (slightly more accurate, since points in a hexagon are on average closer to its center than in an equal-area square) summarize density directly through color. Contour lines offer a third option for moderately sized datasets, showing regions of similar density, but the chapter cautions that overlapping contour lines from more than two or three groups quickly become an unreadable “hairball” — better handled by splitting into separate faceted panels, one contour set per group.

Key Points:

  • Overplotting occurs when many data points lie exactly or nearly on top of each other, making a plain scatter plot misleading about true point density.
  • Partial transparency reveals overplotted density through darker shading; adding small random jitter further separates identical points, but too much jitter distorts the underlying data.
  • A 2D histogram bins the plane into rectangles (or hexagons) and colors each by point count, which scales to very large datasets where transparency alone fails.
  • Hexagonal binning is slightly more accurate than rectangular binning because points inside a hexagon are, on average, closer to its center than points in an equal-area square are to theirs.
  • Contour lines work well for two or three well-separated groups but become an unreadable “hairball” with more groups; faceting into separate panels per group usually works better at that point.

Practice Tip: When a scatter plot looks like a solid black blob, don’t reach straight for a 2D histogram — first try partial transparency plus a small amount of jitter; it is a much smaller change and is often enough for datasets in the hundreds or low thousands of points.

Common Mistake: Applying too much jitter to “fix” overplotting — the chapter shows that excessive jitter moves points into positions that no longer represent the underlying data, trading one kind of misleading figure for another.

Important Questions:

  • Why does hexagonal binning slightly outperform rectangular binning for very large scatter datasets? Because, on average, the points that fall inside a hexagon are closer to the hexagon’s center than the points inside an equal-area square are to the square’s center, so the colored hexagon represents the underlying data location slightly more accurately.
  • What alternative does the chapter recommend when drawing separately colored contour lines for more than two or three overlapping groups produces an unreadable result? Splitting the groups into separate facet panels, drawing each group’s contour lines in its own panel rather than overlaying all of them in one busy plot with a shared background grid to enable comparison.

Part 2: Principles of Figure Design · Chapter 19: Common Pitfalls of Color Use

Difficulty: Medium · Key topics: too many colors, rainbow color scale, color-vision deficiency, cvd-safe palettes

This chapter identifies three recurring color mistakes. First, encoding too many categories in color (a 50-state map with 50 distinct colors) overloads the legend-matching task; the rule of thumb given is that qualitative color scales work well for three to five categories, become burdensome at eight to ten, and should switch to direct labeling beyond that. Second, “coloring for the sake of coloring” — e.g. rainbow-coloring every bar for visual flair — adds no information and can actively hurt legibility through over-saturation. Third, and most technical, the popular rainbow color scale is shown to be non-monotonic in perceived lightness (confirmed by converting it to grayscale), which obscures real data features; Wilke’s preferred fix throughout the book is the eight-color Okabe–Ito palette, developed specifically to remain distinguishable under the three main forms of color-vision deficiency (deuteranomaly/protanomaly for red–green, tritanomaly for blue–yellow), which together affect roughly 8% of men and 0.5% of women.

Key Points:

  • Qualitative color scales work well for three to five categories; matching colors to a legend becomes burdensome at eight to ten or more, at which point direct labeling should replace color coding.
  • The popular rainbow color scale is non-monotonic in perceived lightness (confirmed by converting it to grayscale) and is effectively circular, since its start and end colors are nearly identical — both properties obscure real data features.
  • Roughly 8% of men and 0.5% of women have some form of color-vision deficiency (cvd), most commonly red–green (deuteranomaly/protanomaly), with blue–yellow (tritanomaly) being rarer.
  • Sequential color scales are generally safe under cvd if they present a clear light-to-dark gradient; diverging scales are riskier, since red–green is the strongest contrast for normal vision but nearly indistinguishable for many forms of cvd.
  • The eight-color Okabe–Ito palette is Wilke’s preferred cvd-safe qualitative scale, used throughout the book; even a cvd-safe palette can still fail if the colored elements themselves are too small or thin.

Practice Tip: Run any figure that relies on color to distinguish groups through a color-vision-deficiency simulator (several are free online) before finalizing it — a palette that looks fine to you can still collapse two groups into the same apparent color for a meaningful share of your readers.

Common Mistake: Reaching for the default rainbow color scale to represent an ordered data value (like temperature or income) — the chapter shows it is non-monotonic in perceived lightness, meaning equal steps in the data do not correspond to equal steps in perceived color change, which can obscure or distort real patterns in the data.

Important Questions:

  • Why is the rainbow color scale considered a poor choice for representing an ordered data value? It is non-monotonic in perceived lightness (verified by converting it to grayscale, where lightness goes dark-light-dark-light unevenly) and is effectively circular, since the colors at its two ends are nearly the same, so it can obscure real features in the data or make unrelated regions of the scale look artificially similar.
  • What rule of thumb does the chapter give for how many categories a qualitative color scale can reasonably handle? Three to five categories work well; the task of matching colors to a legend becomes too burdensome to be useful once there are roughly eight to ten or more categories, even if the individual colors remain technically distinguishable.

Part 2: Principles of Figure Design · Chapter 20: Redundant Coding

Difficulty: Medium · Key topics: redundant coding, point shape, legend ordering, direct labeling

Building directly on the previous chapter’s color pitfalls, this chapter’s core recommendation is to never rely on color alone to distinguish groups. Using an iris scatter plot, Wilke shows that adding a second aesthetic — different point shapes alongside different colors — keeps a figure legible under color-vision deficiency and even in grayscale printouts, where color alone becomes completely unreadable. A second technique tackles legend order: when a plotting library alphabetizes a legend by default, the visual order of the data (e.g. four stock-price lines, ranked top to bottom) can mismatch the legend’s order, forcing extra mental effort; manually reordering the legend to match the data’s perceived order fixes this at no visual cost. The strongest fix of all, direct labeling (placing text labels or colored ellipses right on the data), eliminates the legend-matching step entirely, and the chapter recommends using two shades of each color — a light one for fills, a darker one for outlines and text — so that thin label text doesn’t read as lighter than its matching filled area.

Key Points:

  • Redundant coding means encoding the same variable in more than one aesthetic at once (e.g. both color and shape), so the figure remains legible if one channel (like color) fails for some readers.
  • Adding point shape alongside color is a simple, effective redundant-coding fix for scatter plots; it is harder to apply the same way to line plots, where dash patterns tend to create visual noise.
  • Default, auto-generated legends are often sorted alphabetically, which can mismatch the visual (perceived) order of the data and force extra mental matching effort; manually reordering the legend to match the data fixes this.
  • Direct labeling (placing text labels or shapes directly on the data, e.g. at the end of a line) removes the need for a separate legend entirely.
  • For colored text labels, using a darker shade than the matching filled area (rather than the identical color) keeps thin label text from appearing lighter and harder to read than the shape it labels.

Practice Tip: Next time you build a multi-line chart with an auto-generated, alphabetically sorted legend, manually reorder the legend entries to match the visual top-to-bottom order of the lines — it is a small change that removes real mental effort from the reader.

Common Mistake: Relying on color as the only way to distinguish groups in a scatter plot or line chart — the chapter shows this fails for readers with color-vision deficiency and for anyone viewing a grayscale printout or photocopy of the figure.

Important Questions:

  • What is “redundant coding,” and why does the chapter recommend it? Redundant coding means mapping the same variable onto more than one visual aesthetic at once (for example, both color and point shape for group membership), so that the figure stays legible even if one of those aesthetics fails for a particular reader, such as someone with color-vision deficiency or someone viewing the figure in grayscale.
  • What problem can arise from a plotting library’s default, alphabetically sorted legend, and how is it fixed? The alphabetical legend order can mismatch the visual order the data lines actually appear in (e.g. highest to lowest), forcing readers to do extra mental work matching legend entries to lines; the fix is to manually reorder the legend so it matches the data’s perceived visual order.

Part 2: Principles of Figure Design · Chapter 21: Multi-Panel Figures

Difficulty: Medium · Key topics: small multiples, faceting, compound figures, consistent axis scaling, panel labeling, visual language

This chapter distinguishes two kinds of multi-panel figure. Small multiples (also called trellis plots or faceting) slice a dataset by one or more variables and repeat the same visualization type across a grid, as in a six-panel breakdown of Titanic survival by class and gender; the chapter’s central warning is that every panel must share the same axis scaling, illustrated with a Bachelor’s-degree dataset where letting each panel’s y axis auto-scale to its own data made nine very differently sized fields look equally popular. Compound figures instead assemble genuinely different plot types or datasets into one labeled figure (panels a, b, c…); here the key requirements are a single, consistent visual language across panels (same colors meaning the same things, same group ordering) and careful pixel-level alignment of axes across panels, both illustrated with a before/after example of athlete physiology data where inconsistent panel colors and ordering created a misleading first impression.

Key Points:

  • Small multiples (also called trellis plots or faceting) repeat the same visualization across a grid, one panel per slice of the data defined by one or more variables.
  • Every panel in a small-multiples grid must use the same axis scaling; letting each panel auto-scale to its own data range can make very different magnitudes look artificially similar.
  • A compound figure assembles different plot types or datasets into one labeled figure, with panels conventionally labeled a, b, c… starting top-left.
  • Compound figures need a single, consistent visual language (the same colors representing the same categories, the same left-right/top-bottom group ordering) across all panels, or the figure can actively mislead.
  • Panels in a compound figure must be carefully aligned to each other (axes, gridlines); this is especially error-prone when panels are made separately and assembled later.

Practice Tip: Before finalizing any small-multiples figure, check every panel’s axis range against every other panel’s — if your plotting software auto-scaled each panel independently, force them to share one fixed range.

Common Mistake: Assembling a compound figure where the same color means one thing in panel (a) and a different thing in panel (b) — the chapter’s athlete-physiology example shows this single inconsistency can create a completely wrong first impression (e.g. appearing to show men have higher body fat than women when the opposite is true).

Important Questions:

  • Why is letting each panel of a small-multiples figure auto-scale its own y axis dangerous, according to this chapter? Because each panel’s curve then fills the same visual range regardless of its actual magnitude, so very different underlying popularity or magnitude levels can look artificially similar across panels — the chapter’s Bachelor’s-degree example shows nine degree fields of very different real popularity all appearing equally important until the axes are fixed to a shared scale.
  • What two things does the chapter say a compound figure needs to work well, beyond each individual panel being fine on its own? A single, consistent visual language across all panels (the same colors and group ordering meaning the same thing everywhere) and careful alignment of the panels’ axes and other graphical elements to each other.

Part 2: Principles of Figure Design · Chapter 22: Titles, Captions, and Tables

Difficulty: Easy · Key topics: figure title placement, axis/legend titles, when to omit labels, table formatting rules

Every figure needs exactly one title, and Wilke argues it belongs as the first element of the caption underneath the figure (his consistent style throughout the book) rather than integrated into the figure itself, except for standalone infographics or social-media posts with no separate caption block. He stresses the title should be a clear assertion (“The most developed countries are the least corrupt”), not a bland description (“This figure shows…”). Axis and legend titles should state both the variable and its units for quantitative data, though titles can be safely omitted when labels are self-explanatory (e.g. “female”/”male” needs no “sex” title) — but the chapter cautions against omitting titles too aggressively, since even 95%-confident guessing still leaves readers with a “nagging feeling of uncertainty.” The chapter closes with concrete table-formatting rules: no vertical lines, no horizontal lines between data rows, text left-aligned, numbers right-aligned with consistent decimal places, and captions placed above tables (unlike figure captions, which go below) because readers process tables top-to-bottom like text.

Key Points:

  • Every figure has exactly one title; in conventional book/article layouts it belongs as the first element of the caption underneath the figure, not integrated into the figure itself.
  • A good figure title is a clear assertion about what the figure shows, not a generic description like “this figure shows…”.
  • Axis and legend titles should state both the variable and its units for quantitative data; they can be safely omitted only when the labels are fully self-explanatory (e.g. “female”/”male” needs no “sex” legend title).
  • Table formatting rules: no vertical lines, no horizontal lines between data rows, text columns left-aligned, number columns right-aligned with a consistent number of decimal digits.
  • Table captions go above the table (readers process a table top-to-bottom like text), while figure captions go below the figure (readers look at the image first, then read for context).

Practice Tip: Take any table you have made recently and check it against the chapter’s six rules (no vertical lines, no lines between data rows, left-align text, right-align numbers with consistent decimals, center single-character columns, align headers with their data) — Wilke notes roughly 70–80% of Microsoft Word’s built-in table styles violate at least one of these.

Common Mistake: Writing the figure caption’s opening sentence as a description (“This figure shows how corruption relates to human development”) instead of a title-like assertion (“The most developed countries are the least corrupt”) — the chapter names this as one of the most common captioning mistakes it sees.

Important Questions:

  • Where does this book’s own style place a figure’s title, and why does the author say that’s necessary in conventional print layouts? As the first element of the caption underneath the figure, because a figure can only have one title, and conventional book/article layouts place a regular caption block under each figure — so if a title were also integrated into the figure display itself, the figure would effectively have two titles.
  • Why are table captions conventionally placed above the table, while figure captions go below the figure? Because readers process figures by first looking at the graphical display and then reading the caption for context (so the caption belongs below), whereas readers process tables like ordinary text, top to bottom, so reading the caption before the table’s contents is more useful.

Part 2: Principles of Figure Design · Chapter 23: Balance the Data and the Context

Difficulty: Medium · Key topics: data-ink ratio, background grids, minimalism, framing, diagonal reference lines

Citing (and gently critiquing) Tufte’s “maximize the data-ink ratio, within reason,” Wilke argues both over-decorated and over-minimalist figures fail: too much non-data ink (heavy frames, dense grids) buries the actual data points, while too little (faint, nearly invisible axis labels and legends) leaves elements “floating in space” with no clear reference. He works through concrete grid choices — ggplot2’s popular gray-background-with-white-grid style, a no-grid option that requires visible axis lines instead, and a minimal single reference-line option (e.g. one horizontal line at a meaningful baseline value) — arguing there is no universally correct choice, only a judgment call based on the specific figure and its likely audience. The chapter closes on paired-data scatter plots, where Wilke prefers a diagonal x=y reference line over a background grid, since the diagonal directly answers the reader’s real question (“is this point above or below equal?”) more clearly than grid lines do.

Key Points:

  • Tufte’s “data–ink ratio” (the proportion of a figure’s ink devoted to non-redundant data display) is useful guidance only “within reason” — taken to the extreme it produces figures that are hard to decipher, not just minimal.
  • Too much non-data ink (heavy frames, dense background grids) draws attention away from the actual data points.
  • Too little non-data ink (very faint axis labels, no visible reference lines or grid) leaves figure elements appearing to “float in space” with no context.
  • Full background grids suit scatter plots with no primary axis of interest; a minimal single reference line (or grid on one axis only) suits figures with one primary axis of interest, like a time series.
  • For paired-data scatter plots, a diagonal x=y reference line is generally more useful than a background grid, since it directly answers “is this point above or below equal?”

Memory Tip: Think of non-data ink like seasoning: too little and the dish (data) is bland and hard to place in context; too much and it overwhelms the dish entirely. The right amount depends on the specific dish.

Common Mistake: Following “remove all non-data ink” as an absolute rule rather than Tufte’s own qualified version (“within reason”) — the chapter shows an example where fading out axis labels and legend text so far that the figure’s elements appear to float in empty space, with no clear indication of what is being shown.

Important Questions:

  • What is the “data–ink ratio,” and what caveat does the chapter add to Tufte’s famous advice to maximize it? It is the proportion of a graphic’s ink devoted to the non-redundant display of data information; the chapter’s caveat, taken directly from Tufte’s own qualifier “within reason,” is that maximizing it to the extreme (removing nearly all context, axis labels, and reference lines) produces figures that are hard to decipher rather than genuinely improved.
  • Why does the chapter prefer a diagonal x = y line over a background grid for scatter plots of paired data? Because the reader’s actual question for paired data is usually “is this point above or below the line of equality, and by how much?” — a diagonal reference line answers that directly, while a background grid requires the reader to do more mental work to judge the same thing.

Part 2: Principles of Figure Design · Chapter 24: Use Larger Axis Labels

Difficulty: Easy · Key topics: text size, print-size preview, default software settings

This short, pointed chapter makes one single-issue argument: axis labels, tick labels, and legend text are almost always too small in default plotting-software output, and Wilke calls this out as the one lesson he’d want a reader to retain from the entire book if nothing else. He walks through examples ranging from illegibly tiny to appropriately balanced to overdone (text too large relative to the plot symbols), and diagnoses the root cause as a viewing-context illusion: figures are made and previewed on large, high-resolution monitors where even small text looks perfectly readable, but the same figure printed or embedded at its actual final size (a few inches wide) becomes illegible. His fix is simple and concrete: always preview a figure at its true final print size, either by zooming your screen out to three to five inches of apparent width or by physically stepping back from the monitor.

Key Points:

  • Default axis, tick, and legend text sizes in most plotting software are too small for a figure’s actual final print or publication size.
  • The chapter’s single biggest recommendation across the whole book: check text legibility, not just data content, before finalizing any figure.
  • Text size and plot-symbol size must be balanced together — text alone being large enough is not sufficient if the data symbols then look disproportionately tiny.
  • The illusion of “the text looks fine” arises because figures are typically previewed at large size on a high-resolution monitor, not at their true final print size.
  • The fix: preview the figure at its true final size (e.g. zoomed to three to five inches wide on screen, or viewed from across a room) before judging whether the text is legible.

Practice Tip: Before calling any figure finished, zoom your screen preview out until the figure is only a few inches wide (or print it) and read the axis labels at that actual size — if you have to squint on your monitor, that’s the tell your default text size is too small.

Common Mistake: Judging a figure’s text legibility while it fills your entire high-resolution monitor screen — the chapter explicitly warns that even clearly-too-small text can look “fine” at that magnification, and the only reliable check is previewing at the figure’s true final size.

Important Questions:

  • What psychological/perceptual reason does the chapter give for why so many figures end up with illegibly small axis labels? Figures are usually made and reviewed on large, high-resolution computer monitors, where the figure takes up a lot of screen space; at that scale even genuinely small text looks perfectly legible, so the problem only becomes apparent once the figure is viewed at its true, much smaller final print or publication size.
  • What simple, concrete check does the chapter recommend to catch this problem before finalizing a figure? Preview the figure at its actual final size — either by zooming the screen view out so the figure is only about three to five inches wide, or by stepping back from the monitor a significant distance — and judge legibility only at that realistic scale.

Part 2: Principles of Figure Design · Chapter 25: Avoid Line Drawings

Difficulty: Easy · Key topics: filled shapes vs. outlines, histograms, density plots, open vs. solid points, boxplots

Wilke’s recommendation here is direct: prefer solid, filled shapes over outlined line drawings wherever the principle of proportional ink allows it, because solid shapes read as coherent objects more immediately and with fewer visual artifacts. He traces the preference for outlines back to a 20th-century constraint (hand-drawn, black-and-white-only reproduction) that no longer applies, then demonstrates the problem across four chart types: outlined histogram bars create ambiguity about which side of a line is “inside,” dashed density-plot outlines look porous and fail to clearly separate overlapping distributions, open scatter-plot symbols (circles, triangles) create more visual noise than solid points for a marginal overplotting benefit that other techniques (Chapter 18) handle better, and outlined boxplots lose the clear visual separation that a lightly shaded box provides, especially when many boxplots sit side by side.

Key Points:

  • Solid, filled shapes are perceived as coherent objects more reliably and with fewer optical artifacts than outlined line drawings.
  • Line drawings persist mainly as a legacy of pre-computer, black-and-white, hand-drawn reproduction constraints that no longer apply to modern figures.
  • Outlined histogram/density bars create ambiguity about which side of a boundary line is “inside” the shape, especially where shapes are adjacent or overlapping.
  • Solid points are generally preferred over open (hollow) point symbols in scatter plots; the argument that open points help with overplotting is outweighed, in Wilke’s view, by the added visual noise, and better overplotting fixes exist (Chapter 18).
  • This recommendation does not override the principle of proportional ink (Chapter 17) — filled areas must still be sized/positioned correctly, not just filled for its own sake.

Practice Tip: Audit your default plotting theme: if histograms, density plots, or boxplots render as unfilled outlines by default, switch to a light fill color as your new default — it is a one-time settings change that fixes this issue across every future figure.

Common Mistake: Leaving histogram or density-plot bars/curves as unfilled outlines, especially when several overlap — readers cannot reliably tell which side of the outline is the “inside” of the shape, and dashed-line variants used to distinguish groups look porous rather than forming a clear boundary.

Important Questions:

  • Why does the chapter recommend filled shapes over outlined line drawings in general? Filled, solid shapes are more easily and reliably perceived as coherent objects, are less prone to creating visual artifacts or optical illusions (such as ambiguity about which side of a line is “inside”), and convey amounts more immediately than outlines do.
  • Historically, why did line drawings become the default style for data visualizations, according to this chapter? Because throughout most of the 20th century, visualizations were hand-drawn and had to reproduce in black-and-white, which precluded solid color or gray fills and forced the use of outlines, hatching, and dash patterns — a constraint that modern digital tools and full-color reproduction no longer have, even though many plotting libraries still default to outline styles.

Part 2: Principles of Figure Design · Chapter 26: Don’t Go 3D

Difficulty: Medium · Key topics: gratuitous 3D, 3D position scales, non-invertible projection, rotating/interactive 3D, Trellis alternative

Wilke distinguishes two very different uses of 3D that are both, in his view, usually mistakes on a static 2D display. “Gratuitous” 3D (rotating a pie chart or turning bars into 3D columns purely for visual flair) conveys no real data in its third dimension yet still distorts perceived proportions — his rotated-pie and 3D-bar examples show slices and bar heights visibly misjudged depending on viewing angle. Genuine 3D position scales (actually plotting a third quantitative variable in x/y/z space) are a subtler case: the chapter explains the core problem mathematically as two successive data transformations, the second (3D-to-2D projection for display) being fundamentally non-invertible, since every point on the 2D screen corresponds to an entire line of possible points in 3D space, which the human visual system cannot reliably recover without depth cues. His recommended fix is nearly always to map the third variable onto a genuinely 2D-native encoding (color, size, or faceted small multiples/Trellis panels) instead. 3D remains genuinely appropriate only when the object being shown is inherently 3D (topographic relief, a molecular structure) and, ideally, is shown rotating or interactively.

Key Points:

  • “Gratuitous” 3D (decorative 3D pie/bar/line effects that encode no actual data in the third dimension) is unequivocally discouraged — it visibly distorts perceived proportions depending on viewing angle.
  • A genuine 3D scatter plot requires two data transformations: mapping data into 3D space, then projecting 3D onto the 2D screen; this second transformation is non-invertible, since every 2D pixel corresponds to an entire line of points in 3D space.
  • Without strong depth cues, the human visual system cannot reliably reconstruct a static 3D scene from its 2D projection, making genuine 3D scatter plots hard to interpret accurately.
  • Mapping a third variable onto color, size, or a faceted small-multiples (Trellis) layout is usually preferable to adding a true third position axis.
  • 3D is appropriate mainly for inherently 3D objects (terrain relief, molecular structures), and ideally shown rotating or interactively rather than as one static image.

Memory Tip: “3D on paper is a one-way street.” A 3D-to-2D projection cannot be reversed by the eye alone (that’s the math), so unless the figure can actually rotate for the viewer, treat any static 3D chart as suspect by default.

Common Mistake: Adding 3D bar or column effects to a chart purely for visual polish (business-presentation style), not realizing that the added third dimension makes bar heights and pie slices genuinely harder to judge accurately, not just aesthetically different.

Important Questions:

  • Why does the chapter call the 3D-to-2D projection step “non-invertible,” and why does that matter for interpreting a static 3D scatter plot? Because every single point on the flat 2D display corresponds to an entire line of possible positions in the original 3D space, there is no way to uniquely recover where a given data point actually sits in 3D just by looking at its 2D projection, so without additional depth cues (or interactivity/rotation) a static 3D scatter plot cannot be reliably read.
  • In what circumstances does the chapter say a 3D visualization can be genuinely appropriate? When the visualization is interactive or shown rotating (allowing the viewer’s brain to reconstruct depth from multiple angles, as it naturally does) or when the object being visualized is itself inherently three-dimensional, such as topographic terrain relief or a protein’s molecular structure.

Part 3: Miscellaneous Topics · Chapter 27: Understanding the Most Commonly Used Image File Formats

Difficulty: Easy · Key topics: vector vs. bitmap, pdf/png/jpeg, lossless vs. lossy compression, format conversion

This practical chapter explains the file-format choices behind every figure a reader will ever export. Wilke’s own stated preference is pdf for publication-ready vector figures, png for online/bitmap needs, and jpeg only as a last resort. The core distinction is vector (geometric instructions, redrawn on the fly, resolution-independent, but subject to font-substitution issues and potentially huge file sizes for very complex figures) versus bitmap/raster (a fixed pixel grid, always looks the same, but loses quality when magnified). Among bitmap formats, lossless compression (png, using tricks like run-length encoding) preserves every pixel exactly and is best for images with large flat-colored areas like line drawings and text; lossy compression (jpeg) discards subtle detail the eye won’t easily notice, working well for photographs but creating visible artifacts around sharp edges and text. The chapter’s closing rule of thumb: always keep your original figure in the most accurate/flexible format (pdf or high-resolution png), since converting between formats can only lose information, never regain it.

Key Points:

  • Vector graphics (pdf, eps, svg) store geometric drawing instructions and are resolution-independent, but can suffer font-substitution issues and grow huge for very complex figures.
  • Bitmap/raster graphics (png, jpeg, tiff) store a fixed grid of colored pixels; they always render identically but lose quality when magnified beyond their resolution.
  • Lossless compression (used by png) reproduces the image pixel-for-pixel exactly and works best on images with large uniform-colored areas, like line drawings, text, and typical data visualizations.
  • Lossy compression (used by jpeg) discards some detail to shrink file size; it works well for photographs but creates visible artifacts around sharp edges and text, so it should be avoided for data visualizations.
  • Converting between formats can only lose information, never regain it — always keep an original figure in the most accurate/flexible format (pdf, or high-resolution png) and export other formats from that original.

Practice Tip: Export every data-visualization figure you make as pdf or png by default, and reserve jpeg strictly for actual photographs — if you ever see blocky artifacts around text or sharp lines in an exported figure, that is jpeg compression, and the fix is to switch formats, not to tweak the figure.

Common Mistake: Saving a data visualization (a chart full of sharp lines, bars, and text) as a jpeg file, which introduces visible compression artifacts around exactly those sharp edges — the chapter recommends png or pdf instead for anything that isn’t a photograph.

Important Questions:

  • What is the fundamental difference between vector and bitmap image formats? Vector formats store the geometric description of an image (shapes, lines, positions) and are redrawn on the fly at any size, making them resolution-independent; bitmap formats store a fixed grid of individually colored pixels, so they always look the same but lose sharpness when magnified beyond their stored resolution.
  • Why does the chapter recommend against using jpeg for data visualizations, even though it is a very common image format? Jpeg uses lossy compression, which is well suited to photographs with soft gradients but produces clearly visible artifacts around the sharp edges and text that data visualizations are full of; png (lossless, good for large uniform-colored areas) or pdf (vector) are recommended instead.

Part 3: Miscellaneous Topics · Chapter 28: Choosing the Right Visualization Software

Difficulty: Medium · Key topics: reproducibility vs. repeatability, exploration vs. presentation, separation of content and design, ggplot2 themes

Wilke deliberately avoided naming specific software throughout the book until this chapter, where he instead offers general principles for evaluating any tool. He distinguishes reproducibility (someone else, given your data, can recreate a substantially similar figure) from the stricter repeatability (the exact same figure, down to random jitter, can be regenerated from the raw data and a script), arguing interactive point-and-click tools tend to break repeatability because they don’t log every transformation applied — a problem he says he personally hit repeatedly before switching to fully scripted, programmatic figure generation. He also separates two distinct phases of work, data exploration (prioritizing speed and ease of trying different chart types over any single tool’s chart type) from data presentation (prioritizing polish and precise control), and closes on the value of separating a figure’s content (data, mappings, transformations) from its design (colors, fonts, theme) — illustrated with ggplot2’s theme system, which lets a fixed dataset be restyled without touching the underlying data logic.

Key Points:

  • Reproducibility means a substantially similar figure can be recreated by someone else from the same data; repeatability is the stricter standard of recreating the exact same figure, pixel for pixel, from the raw data and a recorded process.
  • Interactive, point-and-click visualization tools tend to undermine repeatability, since they often do not log every data transformation applied, unlike scripted/programmatic figure generation.
  • Data exploration (rapidly trying many different chart types and transformations to understand a new dataset) and data presentation (producing one polished, publication-ready figure) are distinct phases with different priorities.
  • Separating a figure’s content (data, variable-to-aesthetic mappings, transformations, chart type) from its design (colors, fonts, theme, legend placement) lets each be worked on independently.
  • ggplot2’s theme system is given as a concrete example of separating design from content, letting the same underlying figure be restyled by swapping themes without touching the data logic.

Practice Tip: If you ever need to reproduce a figure you made months ago and can’t remember exactly how you made it, that is this chapter’s warning about repeatability in action — write your figures as scripts (not interactive point-and-click steps) from now on, so every transformation is recorded and rerunnable.

Common Mistake: Relying entirely on an interactive, point-and-click visualization tool for a figure that will need to be revised or reproduced later — the chapter recounts the author’s own repeated experience of being unable to recreate an earlier figure exactly because the tool didn’t record every manual transformation applied.

Important Questions:

  • What is the difference between “reproducibility” and “repeatability” as this chapter defines them? A visualization is reproducible if someone else, given the same underlying data, can create a figure that conveys the same message, even if it isn’t pixel-identical; it is repeatable if the exact same figure, down to details like random jitter, can be recreated precisely from the raw data using a recorded, rerunnable process.
  • Why does the chapter recommend separating a figure’s “content” from its “design,” and how does ggplot2’s theme system illustrate this? Separating content (the data, its mapping onto aesthetics, and the chart type) from design (colors, fonts, legend placement) lets data scientists focus on getting the data right while designers focus on visual polish, without either group needing deep expertise in the other’s area; ggplot2’s themes let the same underlying figure be restyled instantly by swapping a theme, without touching the data or the chart type at all.

Part 3: Miscellaneous Topics · Chapter 29: Telling a Story and Making a Point

Difficulty: Medium · Key topics: story arc, “figures for the generals,” building up to complex figures, memorability, consistent-but-not-repetitive visual language

The book’s penultimate chapter reframes data visualization as communication, arguing every presentation of data creates a story in the audience’s mind whether or not the presenter intends one — so a deliberate story is always better than an accidental one. Wilke (using the biology preprint-server bioRxiv/arXiv story as his running example) shows how a sequence of figures can build tension and resolution the way any well-structured narrative does. His “figure for the generals” principle argues busy, technical readers need figures whose point is instantly obvious, and that complex multi-dimensional figures should be built up gradually (show one simple panel before revealing the full small-multiples grid) rather than dropped on an audience all at once. The chapter also tackles memorability (adding visually distinctive elements like isotype/pictogram plots can make an otherwise generic bar chart more memorable, though at some cost to precision) and closes with a rule of thumb on volume: roughly three to six figures per distinct story, whether that story is a blog post, a scientific paper, or one chapter of a longer presentation.

Key Points:

  • Every communication creates a story in the audience’s mind whether or not the presenter intends one; a deliberate story arc (tension building to resolution) is more effective than leaving that story to chance.
  • The “figure for the generals” principle: figures for a busy or non-expert audience should make their point instantly obvious, since the audience won’t spend time decoding a cryptic or overly complex figure.
  • Complex figures (especially large small-multiples grids) are easier for an audience to absorb if a simplified, single-panel version is shown first, before the full complexity.
  • More visually distinctive, unique figures (e.g. isotype/pictogram plots) tend to be more memorable than generic bar/line charts, though very high complexity can trade away clarity for memorability.
  • Rule of thumb for figure count per distinct story: roughly three to six figures — fewer for a blog post or tweet (as few as one), more should generally be split across multiple distinct sub-stories.

Practice Tip: Before presenting a complex, multi-panel figure to any audience, ask whether they have already seen a single simplified panel of it first — the chapter shows that “building up” to complexity dramatically improves how well an audience can read the full version.

Common Mistake: Assuming an audience can look at a figure and instantly infer the point you are trying to make, or that they can rapidly process a genuinely complex, multi-dimensional visualization — the chapter names both as common and false assumptions that lead to confusing presentations.

Important Questions:

  • What does the “figure for the generals” principle mean, and why does the author use that specific example? It means designing figures so a busy, non-specialist reader can instantly see the point being made, without needing to decode complex or overly technical presentation; the author uses a real experience preparing progress reports for U.S. Army program managers, who needed to see success clearly and quickly rather than digest a technically impressive but confusing figure.
  • What technique does the chapter recommend for presenting a complex small-multiples figure to an audience seeing it for the first time? Build up to it gradually — first show a single, simplified panel by itself so the audience understands what one panel represents, then reveal the full grid of many panels, which becomes much easier to digest once the single-panel structure is already familiar.

Part 3: Miscellaneous Topics · Chapter 30: Annotated Bibliography

Difficulty: Easy · Key topics: further reading, Tufte, Cleveland, ggplot2 programming books, statistics texts

The book’s closing chapter is Wilke’s own curated, personally-annotated reading list for readers who want to go further, organized into five groups: general thinking/decision-making texts (Cairo’s “The Truthful Art,” Few’s “Show Me the Numbers,” Nussbaumer Knaflic’s “Storytelling with Data”), programming how-to books (Healy’s ggplot2 book, Murray’s D3 book, VanderPlas’s Python Data Science Handbook, Wickham & Grolemund’s “R for Data Science”), open statistics texts (OpenIntro Statistics, Modern Statistics for Modern Biology), historically influential texts (Cleveland’s “Visualizing Data” and “The Elements of Graphing Data,” Tufte’s “Envisioning Information” and “The Visual Display of Quantitative Information”), and broadly related communication books (Schimel’s “Writing Science,” Schwabish’s “Better Presentations,” Stone’s “A Field Guide to Digital Color,” Ware’s “Information Visualization”). Wilke is candid in his annotations about each book’s real strengths and gaps — for example noting that Tufte’s landmark 1983 book introduced lasting concepts like chart junk and the data-ink ratio but also contains recommendations (excessive minimalism) that “have not stood the test of time.”

Key Points:

  • The bibliography is organized into five groups: general thinking/decision-making texts, programming how-to books, statistics texts, historically influential texts, and broadly related communication books.
  • Two freely available, open-source statistics texts are specifically recommended: OpenIntro Statistics (with its LaTeX and R source also free) and Modern Statistics for Modern Biology.
  • Recommended programming-focused books cover ggplot2 (Healy), D3/web visualization (Murray), Python (VanderPlas’s Python Data Science Handbook), and R more broadly (Wickham & Grolemund’s “R for Data Science”).
  • Wilke’s annotation of Tufte’s “The Visual Display of Quantitative Information” credits it with introducing chart junk, the data–ink ratio, and the first (unnamed) slopegraph, while also noting its excessively minimalistic recommendations have not aged well.
  • The annotations are opinionated and comparative (e.g. explicitly comparing Few’s and Nussbaumer Knaflic’s business-visualization books on scope, depth, and production quality), not a neutral list.

Practice Tip: Pick exactly one book from this list based on your actual next need — VanderPlas or Wickham & Grolemund if you want to start actually coding the figures this book teaches, Cairo or Nussbaumer Knaflic if you want more on the storytelling/communication side — rather than trying to read the whole list at once.

Important Questions:

  • Which two freely available, open-source statistics textbooks does the chapter specifically recommend? OpenIntro Statistics (whose full text, LaTeX source, and R code are all freely available) and Modern Statistics for Modern Biology by Susan Holmes and Wolfgang Huber, which emphasizes computational tools for modern biology.
  • According to the author’s own annotation, what is the main gap in Tufte’s “The Visual Display of Quantitative Information,” despite its lasting influence? While the book introduced enduring concepts like chart junk, the data-ink ratio, and the first (though unnamed) slopegraph, the author notes it also contains numerous recommendations for excessively minimalistic plot design that have not stood the test of time.

Read Fundamentals of Data Visualization Online (Free)

This book has no official downloadable PDF — it is free to read online, chapter by chapter, in its complete official HTML edition. Click below to open it directly at the author’s own site, clauswilke.com/dataviz. A separate paid print/ebook edition (identical content, professionally copy-edited) is also sold by major retailers if you’d prefer a physical or offline copy.

↓ Download PDF

How to Study This Book

This is not a book you need to read cover to cover before using it — the author himself says most chapters can stand on their own, and it is designed to be read piecemeal and revisited. For a one-semester Data Visualization elective (BS Data Science or BSCS), read Chapters 1–4 first: they establish the vocabulary (aesthetics, scales, coordinate systems, color) that every later chapter assumes you already know. Chapter 5 (Directory of Visualizations) is worth a quick skim right after that, not for depth but so you know it exists as a lookup table you can return to later whenever you’re staring at a new dataset unsure which chart type fits.

Chapters 6–16 (the rest of Part I) are the “which chart for which message” core of the course, and they build in a sensible order: amounts (6), then distributions in increasing sophistication (7–9), then proportions (10–11), then relationships between quantitative variables (12–14), then geospatial data (15) and uncertainty (16). If your course is short on time, Chapters 7–9 (distributions) and Chapter 16 (uncertainty) are the two sections most worth protecting, since they are also the two hardest, most statistically loaded parts of the book — expect to need two study sessions for Chapter 16 alone.

Part II (Chapters 17–26) is shorter, more opinionated, and easier reading — these are design-principle chapters, not new chart types, and most students find them faster to get through in one sitting each. Read them in order once, since several build directly on the previous one: Chapter 20 (Redundant Coding) assumes you’ve read Chapter 19 (Common Pitfalls of Color Use), and Chapter 25 (Avoid Line Drawings) reads best right after Chapter 17 (Proportional Ink), since both are about how a shape’s own appearance can mislead independent of the data itself.

Part III (Chapters 27–30) is optional reference material for most coursework: Chapter 27 (image file formats) and Chapter 28 (choosing software) matter most if your course has a practical, hands-on component where students actually produce figures for submission — assign them right before the first graded assignment, not at the start of term. Chapter 29 (Telling a Story) is the best single chapter to assign right before any final project or presentation, since it is the most directly actionable for improving a student’s actual deliverable. Chapter 30 (Annotated Bibliography) needs no dedicated study time; point students to it only if they want to go deeper into a specific sub-area (statistics, ggplot2, D3, presentations).

Because this book contains zero programming code by the author’s own explicit design choice, it will not teach a student how to actually produce any of these visualizations in a specific tool. Pair it with a hands-on companion for the practical side of a course: students working in Python should pair it with Think Python or Problem Solving with Algorithms and Data Structures using Python for general Python fluency (and separately learn matplotlib/seaborn/plotly on their own), while students who want the exact R/ggplot2 workflow behind every figure in this book can consult the book’s own public source code at github.com/clauswilke/dataviz.

What this book never covers, and what to tell students not to expect from it: interactive dashboards, animation beyond one brief section on hypothetical outcome plots (Chapter 16), any specific plotting library’s syntax, and any inferential-statistics content beyond what Chapter 16 needs for visualizing uncertainty. Students who need those topics should be pointed to a separate course or text (the book’s own Chapter 30 bibliography is a good source for exactly this).


Used In These Programs

This book is used for the Data Visualization course in: BS Computer Science and BS Data Science programs (no dedicated BS Data Science tag exists yet on this site, so it is not linked separately here). Browse all Computer Science books for the rest of your semester.

Who Should Read This

This book is written for anyone who has to prepare figures for a technical audience — scientists, analysts, data science students, and consultants — and it assumes no prior background in statistics, design, or any specific programming language; it is genuinely readable by a first- or second-year student even before they have taken a formal statistics course, though Chapters 8, 14, and 16 (empirical distributions, trend fitting, and uncertainty) reward having at least an introductory statistics course alongside them. It is not a programming book and never will teach you matplotlib, ggplot2, D3, or any other specific tool — by the author’s own explicit design choice, it contains zero code, so a student who wants to actually build the figures shown here needs a separate, hands-on companion. It is best suited to Data Visualization electives, technical-writing or research-methods courses that include a figures/reporting component, and any capstone or thesis-writing student who needs to defend their own charts to a committee. Because it deliberately excludes any specific software, it pairs naturally with Think Python for students who intend to implement these principles in Python’s plotting libraries.


Applicable Universities

This book is useful for students at Pakistani universities offering BS Computer Science and BS Data Science programs, including Punjab University, Virtual University, COMSATS, FAST, UET, NUST, and other HEC-recognized institutions.

FAQs

Is Fundamentals of Data Visualization free?

Yes. The complete book, all 30 chapters, is free to read online at its official source, clauswilke.com/dataviz. It is licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0), confirmed directly from the book’s own front matter. A separate paid print and ebook edition, professionally copy-edited by O’Reilly Media, is also sold by retailers such as Amazon and Barnes & Noble, but reading the free official web edition costs nothing.

Which edition of this book is this, and is it still current?

This page is built from the 1st edition, published by O’Reilly Media in 2019. The free web edition is, in the author’s own words, “the complete author manuscript before final copy-editing,” and its content is stable and principles-based rather than tied to a specific software version, so nothing in it has become outdated. It remains a current, actively used text.

How many chapters does this book have, and does it include exercises?

30 chapters, organized into three parts the author himself names: From Data to Visualization (16 chapters on chart types), Principles of Figure Design (10 chapters on color, labeling, and layout), and Miscellaneous Topics (4 chapters on file formats, software choice, and storytelling). There are no formal end-of-chapter exercise sets; instead, every chapter works through real, named datasets as applied case studies.

Is this book good for complete beginners?

Yes, for a beginner to data visualization specifically. It assumes no prior background in statistics, design, or programming, and the author explicitly writes it as a principles book rather than a coding tutorial. That said, it is not a beginner’s introduction to statistics itself — Chapter 16 (Visualizing Uncertainty) in particular moves quickly through confidence intervals and Bayesian credible intervals, and is easier to follow alongside an introductory statistics course.

Does this book teach ggplot2, matplotlib, or any other specific tool or code?

No, and this is deliberate. The author states directly in his own FAQ that although nearly every figure in the book was made with R and ggplot2, the book contains zero programming code on purpose, so it stays useful regardless of which software or language a reader uses. Students who want the exact code behind every figure can consult the book’s own public source repository on GitHub; students who want a hands-on Python companion should pair this book with a separate title like Think Python.

Does this book cover statistics topics like confidence intervals and uncertainty?

Yes, in Chapter 16 (Visualizing Uncertainty), the book’s longest chapter. It covers error bars, standard deviation vs. standard error, frequentist confidence intervals vs. Bayesian credible intervals, confidence bands for curve fits, and hypothetical outcome plots. It is not a full statistics textbook, though — it covers only the statistical concepts needed to visualize uncertainty honestly, not general statistical inference.

Related Books

Fundamentals of Data Visualization is a free, principles-first guide to making figures that are both accurate and compelling — covering everything from choosing the right chart type for your message to color, labeling, uncertainty, and telling a clear story with your data, entirely independent of any one software tool. Browse more Computer Science books for the rest of your semester.

Fundamentals of Data Visualization: A Primer on Making Informative and Compelling Figures, by Claus O. Wilke. Published by O’Reilly Media, Inc., 2019. Licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0). Free to read online at https://clauswilke.com/dataviz/

Leave a Comment