Bubble chart

A bubble chart encodes a third quantitative measure as the area of each point. It is genuinely useful and easily overdone: area is harder to read than position.

Use size for the measure you care about least of the three.


#When this is the right chart

  • Three measures where two matter more than the third.

  • Portfolio views: effort, impact and cost.

  • Comparing items where scale differs enormously.


#What the data needs to look like

Field

Type

X

Quantitative

Y

Quantitative

Size

Quantitative

Colour

Nominal, optional


#A worked example

Effort, impact and team size in one chart:

Bubble chart

The source, which you can paste into a new diagram and edit:

{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "description": "Roadmap items: effort, impact and team size",
  "width": 380,
  "height": 280,
  "data": {"values": [
    {"item": "Single sign-on", "effort": 8, "impact": 9, "people": 4, "area": "Platform"},
    {"item": "Bulk export", "effort": 3, "impact": 7, "people": 2, "area": "Apps"},
    {"item": "Dark mode", "effort": 4, "impact": 5, "people": 2, "area": "Apps"},
    {"item": "Audit log", "effort": 6, "impact": 8, "people": 3, "area": "Platform"},
    {"item": "Legacy import", "effort": 9, "impact": 3, "people": 5, "area": "Data"},
    {"item": "Custom themes", "effort": 7, "impact": 2, "people": 3, "area": "Apps"}
  ]},
  "mark": {"type": "circle", "opacity": 0.75},
  "encoding": {
    "x": {"field": "effort", "type": "quantitative", "title": "Effort", "scale": {"domain": [0, 10]}},
    "y": {"field": "impact", "type": "quantitative", "title": "Impact", "scale": {"domain": [0, 10]}},
    "size": {"field": "people", "type": "quantitative", "title": "People"},
    "color": {"field": "area", "type": "nominal", "title": "Area"},
    "tooltip": [{"field": "item"}]
  }
}

#A few things that catch people out

  • Size is read as area, not radius. Encoding it as radius exaggerates large values fourfold.

  • Overlapping bubbles need opacity, or the small ones vanish.

  • Label the bubbles that matter. A legend of eight items is a lookup task.



Pick the chart for the question, not for the look.