Remember that truly stellar bar chart you saw a few months ago? Truthfully, no one else does either, and that’s a problem for those of us in the business of communicating data with impact.
We often describe chart design as a dichotomous process of selecting specific charts for specific purposes: Lines describe change over time, bars compare quantities, histograms or box plots illustrate distributions, and so on. Groupings like these that cluster charts according to characteristics or usage are broadly referred to as visualization taxonomies.
Visualization taxonomies play an important role in data visualization theory and design. These taxonomies — like in any other domain — are powerful organizational tools. They can be a useful starting place when you begin conceptualizing a chart and are essential for creating rules-based chart generation tools. However, while they excel in predictability, they do little to inspire the kind of out-of-the-box thinking needed to create custom visualizations that wow and entertain your reader.
Fortunately, there’s another systematic way to approach chart design that provides more flexibility than a taxonomy while ensuring that the resulting figure is interpretable. In the academic visualization world, we know this to be the Grammar of Graphics coined by Leland Wilkinson in his 1999 book, The Grammar of Graphics. Wilkinson’s framework teaches us how to think about graphs as a collection of components that snap together into a final “grammatically correct” visualization.
You are likely more familiar with this framework than you realize. There is a reason that we’re able to understand graphs, and that’s because they tend to adhere to the same basic recipe. Charting tools and visualization languages, too, often reflect the grammatical nature of visualizations in their user interfaces and syntaxes. When you create a visualization in PowerBI or Tableau, for example, the grammatical elements of the figure are assembled predominantly through GUI selections. Code-based visualization languages like D3.js, Vega, and ggplot2 make use of a layered approach that allows for even greater customization. The “gg” in Hadley Wickham’s R plotting library…