This entry is part of the Chart Index, the reference library for the Chart Design Field Guide.

The bubble chart is a scatter plot with a third dimension: each point becomes a circle whose area encodes an additional quantitative variable. Two variables map to x and y; a third maps to size. The chart can pack four dimensions if colour is added — and that is usually where it goes wrong. The form's reputation for over-cluttering comes from how easy it is to throw one more encoding at it.

Done well, the bubble chart is a powerful editorial form. Income vs. life expectancy, with bubble size as population is the canonical example — Hans Rosling's Gapminder used animated bubble charts to make demographic data viscerally readable for millions. The lesson from that work: the visual scale of the bubbles must be honest, and the dataset must be sparse enough that bubbles do not overplot.

What it is

A bubble chart maps two continuous variables to x and y positions, and a third quantitative variable to the area of a circle at each point. Optional fourth and fifth variables can be encoded as colour and label. The encoding is area, not radius — doubling the value should double the visible area, which means the radius scales as the square root of the value.

The hero chart above plots twenty-four retail stores by weekly foot traffic (x) and conversion rate (y), with bubble area proportional to weekly revenue. The eye reads the cloud first — busier stores convert no better than quiet ones — and then the sizes: the two largest bubbles sit at the far right, because revenue follows traffic even when conversion does not. Only the four biggest stores are labelled; the rest can be hovered. Randomise the data and the bubbles drift and swell, but the sqrt scaling holds, so a bubble that doubles its revenue grows by a factor of 1.4 across, not 2.

When to use it

Bubble charts are the right choice when:

  • You have three continuous variables to display and want them on the same chart.
  • The reader's question is "is there a relationship between A and B, and how does C contribute?"
  • The third variable (size) is non-negative and varies over a reasonable range (factor of 5–100×).
  • You have few enough observations that bubbles do not overplot (typically 20–100).
  • The chart is editorial — bubble charts are storytelling forms, not analytical workhorses.

When not to use it

  • Three variables of similar importance. A 3D scatter plot or a small-multiple panel may be better than encoding the third as size.
  • Overplotting. When bubbles overlap, the size encoding fails. Use alpha blending, hexbins, or filter to fewer points.
  • Discrete categories on x or y. Bubble charts require continuous axes. For categorical comparison, use grouped bars or dot plots.
  • Audiences unfamiliar with area encoding. Readers often misperceive area; they tend to read large bubbles as larger than they are.

Design principles

Scale by area, not radius

If you map the third variable to radius directly, doubling the value produces a circle four times the area. The eye reads area; the encoding becomes a 4× exaggeration. Scale the radius as the square root of the value so the area is proportional. The renderer used throughout this entry does exactly that: the diameter runs on a square-root scale, so a bubble worth 100 covers ten times the area of a bubble worth 10 and is only about three times as wide.

Four bubbles, area-proportional: 10, 30, 60 and 100
The largest bubble has ten times the area of the smallest, not ten times the width. Read them as quantities of ink and the ratio is right; had the radius been scaled to the value instead, the bubble worth 100 would have been a hundred times the area of the one worth 10.

Label the most-important bubbles

A bubble chart with 50 unlabelled bubbles is a beautiful but ambiguous cloud. Label the bubbles that carry the story — the largest, the smallest, named outliers, the bubble being discussed in the text. Most bubbles can remain unlabelled if a small subset is named.

Label the few that matter, hover for the rest
The same stores as the hero with the labelling threshold lowered so the largest eight are named. Each label sits beside its bubble rather than inside it; the sixteen smaller stores are identified on hover. Naming all twenty-four would have buried the chart in type.

Keep the bubbles small enough to place

Size is the third encoding, and it competes with the first two: a bubble that is wide enough to be impressive is too wide to locate on the axes. Keep the largest bubble to a few percent of the plot area and let the differences between bubbles, not their absolute size, carry the variable.

Bubbles too large: the position encoding drowns
The hero's stores with the size range tripled. The big stores now cover a fifth of the plot, overlap their neighbours, and nobody can say where Chadstone's centre actually sits on the conversion axis.

Filter before you overplot

When bubbles overlap, the size encoding fails: the eye cannot judge the area of a circle it can only half see. A bubble chart of 120 items is almost always better as a bubble chart of the 25 that matter, with the rest summarised in the prose.

One hundred and twenty products: nothing can be sized
Every product in the catalogue plotted by price and margin, sized by units sold. The dense band across the middle is a pile of overlapping discs. The reader can see that there is a lot of stuff, and nothing else.
The twenty best sellers: now the sizes can be read
The same catalogue filtered to the twenty products with the most units sold. Each bubble has room, each area can be compared with its neighbours, and the relationship between price and margin is visible in the placement.

Use colour for one categorical variable at most

If the bubble has a fourth dimension as colour, use a sequential or categorical palette with intentional choices. Store format → categorical; score → sequential. Two or three categories with a legend are readable; a rainbow of eight is not, because the reader is now decoding hue, position and area at once.

Colour as the fourth variable: metro against regional
Two store formats, two hues, one legend. The colour adds a question the position and size could not answer — do regional stores convert differently? — without asking the reader to decode more than two categories.

Provide a size legend

A bubble chart needs a key showing what the bubble sizes represent. Three or four reference circles (small, medium, large) labelled with values, or at minimum a subtitle that names the variable and its unit. Place it near the chart, not buried.

Honest axes

Like scatter plots, bubble charts are sensitive to axis truncation. A bubble in the upper-right corner of a zoomed axis may not be the leader once the axis includes the full range. The size encoding adds a second trap: a bubble's area is read against its neighbours, so a chart that has been filtered to the largest items will make a mid-sized item look small.

Use animation for temporal evolution

Static bubble charts of one moment can show a relationship. Animated bubble charts show how the relationship evolves over time — bubbles drifting, growing, shrinking. The animation is the form's most powerful storytelling tool, but it requires interactive delivery.

Anatomy

The composition of a bubble chart
An anatomical guide

A bubble chart's anatomy is a scatter plot with sized circles, axes labelled with units, a size key or a subtitle that names the size variable, and selective labels on the bubbles that carry the story. The form rewards restraint — fewer bubbles, fewer labels, fewer encodings — than its temptation suggests.

  • Scatter plot — the bubble chart without the size dimension. Simpler, more analytical.
  • Beeswarm — single-axis dot plot with size; different question.
  • Packed bubble chart — bubbles packed inside a container, no x/y; rank-only display.
  • 3D scatter — for three continuous dimensions where size encoding would be ambiguous; rarely worth the complexity.
  • Connected bubble (animated) — Rosling's Gapminder form, bubbles tracing paths through time.

Reading list

  • Rosling, H. (2010). The Joy of Stats. The Gapminder animated bubble chart.
  • Cleveland, W. & McGill, R. (1984). Graphical Perception. Area perception ranks below position; treat with care.
  • Stevens, S. (1957). On the Psychophysical Law. The original studies on perceived size scaling.