Jeffrey Heer, Michael Bostock, and Vadim Ogievetsky of Stanford University review some data visualizations that go above and beyond pie charts, bar charts, and scatterplots.
## Highlights
For example, *graphical perception* experiments find that spatial position (as in a scatter plot or bar chart) leads to the most accurate decoding of numerical data and is generally preferable to visual variables such as angle, one-dimensional length, two-dimensional area, three-dimensional volume, and color saturation. Thus, it should be no surprise that the most common data graphics, including bar charts, line charts, and scatter plots, use position encodings. Our understanding of graphical perception remains incomplete, however, and must appropriately be balanced with interaction design and aesthetics. ([View Highlight](https://read.readwise.io/read/01jbezra3wnpmx15xdpegpjh24))
---
Time-Series Data ([View Highlight](https://read.readwise.io/read/01jbf05g8g12nh858sw9nhkdgk))
---
Index Charts ([View Highlight](https://read.readwise.io/read/01jbf05kbt2hc0a3nr4b0q9yzf))
---
An *index chart* is an interactive line chart that shows percentage changes for a collection of time-series data based on a selected index point. ([View Highlight](https://read.readwise.io/read/01jbezv2xr54tn9v7yqwx62swd))
---
 ([View Highlight](https://read.readwise.io/read/01jbezv9r7x56tdtv0kbkq7ht3))
---
Stacked Graphs ([View Highlight](https://read.readwise.io/read/01jbf05qf80ng4dwf41z6evby7))
---
By stacking area charts on top of each other, we arrive at a visual summation of time-series values—a *stacked graph*. This type of graph (sometimes called a *stream graph*) depicts aggregate patterns and often supports drill-down into a subset of individual series. ([View Highlight](https://read.readwise.io/read/01jbezvzvn5v5b6na7nkbgg1zh))
---
A stacked graph does not support negative numbers and is meaningless for data that should not be summed (temperatures, for example). ([View Highlight](https://read.readwise.io/read/01jbezwahfrz2w4gq0xdtrgqat))
---
 ([View Highlight](https://read.readwise.io/read/01jbezw230ahpvgfacqn0hjknm))
---
Small Multiples ([View Highlight](https://read.readwise.io/read/01jbezwyrb8k9qe19wzgqnfw8f))
---
 ([View Highlight](https://read.readwise.io/read/01jbezx28kh616p99pn261sby5))
---
Horizon Graphs ([View Highlight](https://read.readwise.io/read/01jbezxky94v43bmk02nfka0sx))
---
The *horizon graph* is a technique for increasing the *data density* of a time-series view while preserving resolution. ([View Highlight](https://read.readwise.io/read/01jbezxfsrkgagvs8jgsd98vkp))
---
 ([View Highlight](https://read.readwise.io/read/01jbezxp5egvztftc29pnzrf3g))
---
Statistical Distributions ([View Highlight](https://read.readwise.io/read/01jbf05yjnjetjtnz2rmv59j8m))
---
Stem-and-Leaf Plots ([View Highlight](https://read.readwise.io/read/01jbezys8a94txkk0vhvxbadpd))
---
For assessing a collection of numbers, one alternative to the histogram is the *stem-and-leaf plot*. ([View Highlight](https://read.readwise.io/read/01jbezyy1mgjq6tcxa785ppf2m))
---
 ([View Highlight](https://read.readwise.io/read/01jbezz2a0nq8j7dtvzwpjy0kq))
---
Q-Q Plots ([View Highlight](https://read.readwise.io/read/01jbezz76rdz9v3bgwjdb1zw4j))
---
The Q-Q plot compares two probability distributions by graphing their [quantiles](https://en.wikipedia.org/wiki/Quantile) against each other. ([View Highlight](https://read.readwise.io/read/01jbf00ev3k5k8mbde2nf2knvr))
---
 ([View Highlight](https://read.readwise.io/read/01jbf00js31wrs66c3sagzkd46))
---
SPLOM (Scatter Plot Matrix) ([View Highlight](https://read.readwise.io/read/01jbf00ytxtj08et5phkc8ddza))
---
A SPLOM enables visual inspection of correlations between any pair of variables. ([View Highlight](https://read.readwise.io/read/01jbf01c8cr0najjh0zhqb77pr))
---
 ([View Highlight](https://read.readwise.io/read/01jbf01ekqsw0spp5jwqj5061m))
---
Parallel Coordinates ([View Highlight](https://read.readwise.io/read/01jbf02ttfhmf6bwqtkhcjt1jv))
---
Each poly-line represents a single row in the database, and line crossings between dimensions often indicate inverse correlation. Reordering dimensions can aid pattern finding, as can interactive querying to filter along one or more dimensions. Another advantage of parallel coordinates is that they are relatively compact, so many variables can be shown simultaneously. ([View Highlight](https://read.readwise.io/read/01jbf02kbv0d8n9gc94694pm5z))
---
 ([View Highlight](https://read.readwise.io/read/01jbf02xendb0de0z3p84d193w))
---
Maps ([View Highlight](https://read.readwise.io/read/01jbf06733zyk60ts2vsycdyw9))
---
Flow Maps ([View Highlight](https://read.readwise.io/read/01jbf03as38af083aevge0wxe9))
---
By placing stroked lines on top of a geographic map, a *flow map* can depict the movement of a quantity in space and (implicitly) in time. ([View Highlight](https://read.readwise.io/read/01jbf03fytn916c7vknbfvdnye))
---
 ([View Highlight](https://read.readwise.io/read/01jbf03jep7r6x1e1phnsy590m))
---
Choropleth Maps ([View Highlight](https://read.readwise.io/read/01jbf03qevrgvsnwjcp14mbs5s))
---
A standard approach to communicating this data is to use a color encoding of the geographic area, resulting in a *choropleth map*. ([View Highlight](https://read.readwise.io/read/01jbf047kqvvktsxyrsrrxsanz))
---
 ([View Highlight](https://read.readwise.io/read/01jbf04a20ak07gmmeyv97j0bf))
---
Graduated Symbol Maps ([View Highlight](https://read.readwise.io/read/01jbf04h5mgac0rbjq4ak8tq0q))
---
An alternative to the choropleth map is the *graduated symbol map*, which places symbols over an underlying map. ([View Highlight](https://read.readwise.io/read/01jbf04n0k8v681eby0ep18mf8))
---
 ([View Highlight](https://read.readwise.io/read/01jbf04pws0neezdecg2qzryr6))
---
Cartograms ([View Highlight](https://read.readwise.io/read/01jbf04wb8hpz65b09wx6r7s0k))
---
A *cartogram* distorts the shape of geographic regions so that the area directly encodes a data variable. ([View Highlight](https://read.readwise.io/read/01jbf04z2w0rngfty8qwv7ckvb))
---
 ([View Highlight](https://read.readwise.io/read/01jbf051n7mx83tx15q9d3w9sd))
---
Hierarchies ([View Highlight](https://read.readwise.io/read/01jbf06fg2rdw835arwqpgy09h))
---
Node-link Diagrams ([View Highlight](https://read.readwise.io/read/01jbf07353r4vjbznt677wvdb7))
---
The word *tree* is used interchangeably with *hierarchy*, as the fractal branches of an oak might mirror the nesting of data. If we take a two-dimensional blueprint of a tree, we have a popular choice for visualizing hierarchies: a *node-link diagram*. ([View Highlight](https://read.readwise.io/read/01jbf07b1cw7hs44njvkejj42p))
---
 ([View Highlight](https://read.readwise.io/read/01jbf07e8mgp34jv1cawhwhbby))
---
An alternative visualization scheme is the *dendrogram* (or cluster) algorithm, which places leaf nodes of the tree at the same level. ([View Highlight](https://read.readwise.io/read/01jbf07pe803g9n8wvk02by7t7))
---
 ([View Highlight](https://read.readwise.io/read/01jbf07rn8k7k4mmf8v8dxr8nd))
---
We would be amiss to overlook the indented tree, used ubiquitously by operating systems to represent file directories, among other applications (see figure 4C). Although the indented tree requires excessive vertical space and does not facilitate multiscale inferences, it does allow efficient *interactive* exploration of the tree to find a specific node. ([View Highlight](https://read.readwise.io/read/01jbf087114rdz1syx58t4jkx2))
---
 ([View Highlight](https://read.readwise.io/read/01jbf0891ed75xt22mt3hphthn))
---
Adjacency Diagrams ([View Highlight](https://read.readwise.io/read/01jbf08df3csh6kdfgxkf274t4))
---
The *adjacency diagram* is a space-filling variant of the node-link diagram; rather than drawing a link between parent and child in the hierarchy, nodes are drawn as solid areas (either arcs or bars), and their placement relative to adjacent nodes reveals their position in the hierarchy. ([View Highlight](https://read.readwise.io/read/01jbf08msbws7tdhs6yfa3vp7q))
---
 ([View Highlight](https://read.readwise.io/read/01jbf08q67583a9vwhbz4dyr89))
---
The sunburst layout, shown in figure 4E, is equivalent to the icicle layout, but in polar coordinates. ([View Highlight](https://read.readwise.io/read/01jbf08wrs096tnbynb1s8vn10))
---
 ([View Highlight](https://read.readwise.io/read/01jbf08yhx2jabtzj96aeb7dcd))
---
Enclosure Diagrams ([View Highlight](https://read.readwise.io/read/01jbf092nkac10txhx5h2qtwh1))
---
The *enclosure diagram* is also space filling, using containment rather than adjacency to represent the hierarchy. Introduced by Ben Shneiderman in 1991, a *treemap* recursively subdivides area into rectangles. ([View Highlight](https://read.readwise.io/read/01jbf099htdkefkf9fbdmjng8f))
---
 ([View Highlight](https://read.readwise.io/read/01jbf09bn3v3q012nt58v127b8))
---
By packing circles instead of subdividing rectangles, we can produce a different sort of enclosure diagram that has an almost organic appearance. Although it does not use space as efficiently as a treemap, the "wasted space" of the *circle-packing layout,* shown in figure 4G, effectively reveals the hierarchy. ([View Highlight](https://read.readwise.io/read/01jbf09xnr0jjw67tfhfgqm51y))
---
 ([View Highlight](https://read.readwise.io/read/01jbf09zdgs69kwtx1vn9g921e))
---
Networks ([View Highlight](https://read.readwise.io/read/01jbf0a3jbe1d2wk01a5fqn3y7))
---
Mathematicians use the formal term *graph* to describe a network. A central challenge in graph visualization is computing an effective layout. ([View Highlight](https://read.readwise.io/read/01jbf0am7cse6bggxwn1fqkcy0))
---
Force-directed Layouts ([View Highlight](https://read.readwise.io/read/01jbf0apys1phj0g6m2zf0y4ey))
---
A common and intuitive approach to network layout is to model the graph as a physical system: nodes are charged particles that repel each other, and links are dampened springs that pull related nodes together. A physical simulation of these forces then determines the node positions; approximation techniques that avoid computing all pairwise forces enable the layout of large numbers of nodes. ([View Highlight](https://read.readwise.io/read/01jbf0b26784ggbhfdrj3vz905))
---
 ([View Highlight](https://read.readwise.io/read/01jbf0b4nt24dk6dny2q7hpz8k))
---
Arc Diagrams ([View Highlight](https://read.readwise.io/read/01jbf0b9bprjg11y03r6k5xyn8))
---
An *arc diagram*, shown in figure 5B, uses a one-dimensional layout of nodes, with circular arcs to represent links. Though an arc diagram may not convey the overall structure of the graph as effectively as a two-dimensional layout, with a good ordering of nodes it is easy to identify cliques and bridges. ([View Highlight](https://read.readwise.io/read/01jbf0bhyv56tmv8kg60cmrk17))
---
 ([View Highlight](https://read.readwise.io/read/01jbf0bktcyzmk6rqvf3qghazs))
---
Matrix Views ([View Highlight](https://read.readwise.io/read/01jbf0bpwnka18t2qa8kbecafw))
---
Mathematicians and computer scientists often think of a graph in terms of its *adjacency matrix*: each value in row *i* and column *j* in the matrix corresponds to the link from node *i* to node *j*. ([View Highlight](https://read.readwise.io/read/01jbf0c2m7qyk36pj0thxeb60z))
---
The seriation problem applies just as much to the *matrix view*, shown in figure 5C, as to the arc diagram, so the order of rows and columns is important ([View Highlight](https://read.readwise.io/read/01jbf0cj38v2m4ddb8xe5y3xw3))
---
 ([View Highlight](https://read.readwise.io/read/01jbf0c4zny1fy3hhv1ck01w3p))
---