Skip to main content
ExplainerData VisualizationExplainer· 3 min read· in Data & Analysis

The Square Root Transformation: Why Bubble Chart Radii Must Scale to the Square Root of the Data Value

A bubble chart encodes data into the area of circles, but mapping data directly to the radius creates massive visual distortion. To accurately represent values, the radius must be scaled to the square root of the data.

By Viktoria Sokolova

Mathematical Purists 60%Pragmatic Developers 20%Psychophysical Researchers 20%
Mathematical Purists
Argue that the visual area of the bubble must map exactly to the underlying data value using a strict square root transformation.
Pragmatic Developers
Focus on the implementation defaults of charting libraries, noting that many tools historically required manual overrides to achieve accurate area scaling.
Psychophysical Researchers
Highlight that human perception of area is non-linear, suggesting that strict mathematical scaling still results in cognitive underestimation of differences.

Perspectives this story doesn't cover

  • Accessibility advocates addressing how visually impaired users interact with area-encoded data
  • Graphic designers prioritizing aesthetic balance over strict mathematical accuracy
A = πr²
Circle area formula
400%
Visual increase when radius doubles
1.7x
Perceived size of a 2x area increase
0.57
Empirical perceptual scaling exponent

A standard bar chart encodes values using a single dimension—height—meaning a bar twice as tall represents a value twice as large. A bubble chart, however, encodes values using two-dimensional area, which introduces a geometric trap that routinely distorts data visualization.[1][8]

When a designer maps a dataset to a bubble chart, the software must translate a numerical value into the size of a circle. The intuitive, and often default, approach in naive programming is to map the data value directly to the circle's radius.[2][5]

This linear mapping creates a catastrophic visual distortion. Because the area of a circle is calculated using the formula A = πr², any change to the radius is squared in the resulting area.[1]

Consider a dataset with two values: 10 and 20. If the radius of the first bubble is set to 10 pixels, its area is 314 square pixels. If the radius of the second bubble is set to 20 pixels, its area expands to 1,256 square pixels.[6][8]

The underlying data doubled, but the visual footprint quadrupled. A viewer looking at the chart does not see the radius; they see the total amount of ink or pixels on the screen, which now implies a 400% increase instead of a 100% increase.[2][7]

Scaling by radius quadruples the area when the data only doubles. Scaling by the square root preserves the true ratio.

"The most common mistake people make when they draw bubble charts is they size by radius instead of area," noted Nathan Yau in a 2010 FlowingData tutorial. This error exaggerates differences between data points, making large values look overwhelmingly massive and small values practically invisible.[2]

The mathematical correction is the square root transformation. To ensure the area of the bubble scales proportionally with the data, the radius must be scaled to the square root of the data value.[5][6]

The mathematical correction is the square root transformation.

If the data value is V, the radius r should be calculated as r = c × √(V), where c is a constant scaling factor chosen to fit the chart onto the screen without altering the proportional relationships.[6]

Returning to the previous example: the square root of 10 is approximately 3.16, and the square root of 20 is approximately 4.47. If these values are used for the radii, the resulting areas are 31.4 and 62.8 square pixels, respectively. The area has now perfectly doubled, matching the underlying data.[6][8]

Mapping data directly to the radius causes the visual area to grow quadratically, distorting the representation.

Software libraries have historically struggled with this default. In the early 2010s, users of the R programming language frequently had to manually apply the square root function to their datasets before passing them to plotting functions like ggplot2.[5]

Similarly, enterprise charting tools required explicit configuration. A support thread on the Highcharts forum highlights developers wrestling with the zSize parameter to force the engine to calculate size by area rather than radius.[4]

Today, mature design systems explicitly codify this rule. The Michelin Design System's data visualization guidelines mandate that "bubble size must be proportional to the value it represents," enforcing the area-based calculation at the component level.

Yet, even with perfect mathematical scaling, human perception introduces a final complication. Psychophysical research, notably Stevens' power law, demonstrates that humans do not perceive area linearly.[7][8]

When presented with a circle that is exactly twice the area of another, the average human observer perceives it as being only about 1.7 times larger. We systematically underestimate differences in 2D area compared to 1D length.[3][8]

Even with perfect mathematical scaling, human perception systematically underestimates the size of larger areas.

This perceptual compression means that even a mathematically flawless bubble chart will slightly under-represent the magnitude of large outliers. Some visualization researchers argue for applying an empirical perceptual scaling factor—often an exponent of 0.57 rather than 0.5—to counteract this human bias, though this remains controversial.[7]

What we don’t know

  • Whether applying an empirical perceptual scaling factor (like an exponent of 0.57) actually improves comprehension across diverse general audiences compared to strict mathematical scaling.
  • The exact percentage of legacy enterprise dashboards that still utilize uncorrected radius scaling.
  • How the perceptual underestimation of area changes when bubbles overlap heavily in dense scatter plots.

Sources

Source coverage

8 outlets

3 viewpoints surfaced

Mathematical Purists 60%Pragmatic Developers 20%Psychophysical Researchers 20%
  1. [1]WikipediaMathematical Purists

    Bubble chart

    Read on Wikipedia
  2. [2]FlowingDataMathematical Purists

    How to Make Bubble Charts

    Read on FlowingData
  3. [3]Better EvaluationPsychophysical Researchers

    Bubble chart

    Read on Better Evaluation
  4. [4]HighchartsPragmatic Developers

    Bubble size calculation

    Read on Highcharts
  5. [5]R-bloggersPragmatic Developers

    How to make beautiful bubble charts with R

    Read on R-bloggers
  6. [6]MetricGateMathematical Purists

    Bubble Chart Visualization Calculator

    Read on MetricGate
  7. [7]ToucanPsychophysical Researchers

    Bubble charts: definition and use cases for multi-dimensional data visualization

    Read on Toucan
  8. [8]Factlen Editorial Team

    Synthesis by Factlen editorial team

    Read on Factlen Editorial Team

Comments

Stay informed

Every angle. Every day.

Get Data & Analysis stories with full source coverage and perspective breakdowns delivered to your inbox.