Overplotting: When a Scatter Plot Has Too Many Points

Every populated census block in Georgia, and the 88% of them you cannot see

Democracy’s Data

Last updated September 15, 2026 at 4:42p EDT

The most common advice about charts is to show the data — all of it, with nothing summarized away. A scatter plot with one dot per observation feels like the most honest chart there is. You have probably heard the claim in exactly that form: plot every point and let the reader judge for themselves.

Georgia is where this brief tests the claim. A census block is the smallest thing the Census Bureau counts — a city block, a few houses, a stretch of road. Georgia has 232,717 of them, each with a population and a racial composition. Plot one against the other, every populated block in the state, and the result is a figure in which 88.0% of the data is invisible. Not missing, not filtered: drawn, and then drawn over. So the question: when a chart promises to show everything and shows almost nothing, how should dense data actually be drawn?

The test

The data is the Census Bureau’s 2020 count of Georgia, published block by block as the 2020 Census Redistricting Data (P.L. 94-171) Summary File and downloadable at that address. It is the file every state uses to redraw its districts, and its blocks are the raw material for much of the second half of this book: racially polarized voting, surname inference, districting plans. The decennial census chapter is the biography of the count itself; this brief is about what happens when you try to look at all of it at once.

The test is to draw the same 165,333 points three ways: a scatter, the same plane binned into cells, and one axis on its own. What each drawing hides is then measured rather than eyeballed: how many points land where another point has already been drawn, and how many blocks stack under the busiest spot, counted before any figure exists to argue about.

Why this source, of all sources: the decennial census is a full count down to the smallest unit the Bureau publishes. The crowding in these figures is therefore the state’s own texture, not a sampling accident. No survey reaches blocks, and no smaller file poses the problem this brief is about.

The data

Column What it holds Measurement
GEOID20 the block’s 15-character census identifier categorical
pop everybody living in the block on Census Day 2020 count
black_any of those, everybody who marked Black alone or in combination count
vap the voting-age population count

Each Georgia block arrives with the columns above. black_any counts everyone who marked Black alone or in combination with another race, and the vertical axis below is the share: 100 times black_any divided by pop. The table is the same one the areal-units lab reads, taken from the Bureau’s file, so the two documents cannot disagree about a block.

Blocks Which
232,717 blocks in the file
67,384 with nobody living in them
165,333 populated, and drawn
19,871 pixels those points occupy
145,462 points hidden under another point
2,066 most points on a single pixel

The second line is the first decision. 67,384 blocks, 29.0% of the file, have nobody living in them: lakes, interchanges, industrial parcels, the middle of a runway. A racial composition of nobody is not zero percent, it is undefined, and every figure below drops those rows before it starts. That is the only defensible choice, and it still removes almost a third of the file before a single dot is placed.

What remains is 165,333 points. Population runs from 1 to a few thousand and is drawn on a log scale, one that gives every tenfold jump the same width. The median block, the one in the middle when every block is lined up by size, holds 26 people; the mean, all residents divided by all blocks, is 64.8, a gap wide enough that a straight axis would put four fifths of Georgia in the leftmost inch.

Before you read on, commit to a number. 165,333 dots on a figure about seven inches wide. How many of them do you expect to be sitting on top of another dot? Write the number down before you look.

What it says about democracy

Figure 1. 165,333 Georgia blocks: population against Black share. Every populated block in the state is on this figure, one dot each, which is why a scatter is the form to start from: it is the drawing that promises to show everything. The two controls change only how the ink is laid down — the opacity of each dot, meaning how see-through it is, and its radius. No point is added or removed by either.

At full opacity the middle of the figure is solid. 145,462 of the 165,333 points, 88.0% of them, are drawn where another point has already been drawn, and the most crowded single pixel has 2,066 blocks under it. Turn the opacity down and structure appears out of what looked like a single mass. Turn it back up and the structure disappears again.

Neither setting is the honest one. At high opacity the figure exaggerates the rare: a lone block in an empty region is as black as a pixel holding two thousand. At low opacity the dense regions read correctly and the isolated points vanish entirely. Opacity is a parameter with no right value, it changes what the figure asserts, and it is almost never reported.

There is a second thing wrong, and it survives every setting of the control. The outline of a scatter plot is drawn by its rarest points. How far the ink reaches on the page is set by whichever handful of blocks happen to be extreme. The shape of the mass inside is set by hundreds of thousands. The eye reads the outline.

The scatter does hold one thing the later figures destroy. Turn the opacity down and look at the left-hand half: the points lie along curved bands with clean empty space between them, fanning out as population falls. Those bands are the arithmetic of a share. A block of seven people can be 0%, 14.3%, 28.6% and so on: eight values and nothing between, because the share is a fraction with seven as its bottom number. Each band is the set of every fraction k/n a block of one small size n can produce, and the white space between bands is unreachable: no block can land there, at any population, ever.

Blocks with How many Share of all Distinct shares available
1–5 people 16,541 10.0% 11
10 or fewer 37,468 22.7% 66
26 or fewer (the median) 83,337 50.4% hundreds

16,541 blocks hold five people or fewer, and between them they take 11 distinct values of the vertical axis. A quarter of all blocks, 25.1%, sit exactly on zero, with a further 3.8% exactly on one hundred. This was checked rather than assumed: for every block of ten or fewer people, the recorded share is exactly k/n. A regression through this figure, a best line drawn through the scatter, would be treating those bands as though they were a cloud.

Figure 2. The same 165,333 points, binned into hexagons. The plane is tiled with hexagonal cells and each cell is colored by the number of blocks that fall inside it, on a square-root scale, so a cell with four times the blocks is twice as dark; hover any cell for its count. The control switches between three bin sizes, from 107 coarse hexagons to 920 fine ones. Each of the three accounts for every one of the 165,333 points.1

The binned figure answers the question the scatter could not: where is the mass. Two dense regions stand out, at the bottom of the composition axis and at the top, with the middle of the figure thin. That is not something the scatter concealed by accident. It is the thing the scatter’s solid center was made of.

Notice what the binning costs, though. A hexagon holding one block and a hexagon holding four are nearly the same color, so the isolated points, the ones the scatter drew loudest, are now almost invisible. And the arcs are gone: a hexagon spans several of the k/n bands and the empty lattice between them, so it reports a smooth density over a region where half the values cannot occur. The two figures have opposite blind spots, which is the argument for printing both rather than choosing. The scatter is honest about what values exist and dishonest about how many blocks hold them; the hexbin is the reverse.

Figure 3. The composition axis on its own. The plane is collapsed to the one axis the argument is about and drawn as a histogram, which slices that axis into narrow bins and counts the blocks in each, because it is the only form here that lets a single statewide number be read against the whole spread. The dashed line is Georgia’s actual Black share, 33.0%.

54,036 blocks, 32.7% of them, are less than 5% Black. 9,207 are more than 95% Black. Only 10.2% sit between 40 and 60. The state figure passes through one of the emptiest parts of the spread. That is the same failure the distributions chapter finds in House districts, arriving here from a completely different direction. This is what residential segregation looks like when you stop adding it up.

Here is the point about democracy, and it is short because the figures already made it. The invisible 88.0% of Figure 1 is not an unlucky remainder. It is the majority of the places in the state, piled up at the two ends of the axis, exactly where the drawn-over dots sit. A reader who trusts the scatter walks away with the outline, which the rarest blocks drew, and misses the mass; and misreading a dense chart of the country’s smallest units is misreading the country.

Several methods later in this book assign a race to a place: the RPV estimates of racially polarized voting, the BISG model that infers a voter’s race from surname and address, every districting plan in vote-dilution. All of them work on blocks that sit mostly at one end or the other. The methods are easier than they would be in an evenly mixed state, and the ease is a fact about Georgia rather than about the methods.

What this brief cannot tell you

The empty blocks are gone and they are not nothing. 67,384 blocks with no residents were dropped before the first figure, because a share of zero people is undefined. They are 29.0% of the file and they are not randomly placed — they are water, industry and infrastructure, and a map of where they are is a map of where nobody was counted.

Rounding to the pixel is lossless for the picture and not for the data. Figure 1 draws one dot per occupied pixel rather than one per block, each block having been rounded to the pixel it lands on, which puts exactly the same ink in exactly the same places at the size it is printed. Enlarge it and that stops being true. The counts are preserved; the individual blocks are not recoverable from the figure, and were never visible in it anyway.

A hexagon is a choice of resolution, exactly like a histogram’s bin width. The three sizes in Figure 2 tell three slightly different stories about how sharp the two dense regions are, and there is no size that is correct. All three are drawn rather than one chosen.

None of this says anything about people. A block that is 95% Black is a statement about a few dozen residents of a small piece of ground, not about a neighborhood, a community or a district. Blocks are the smallest unit the Bureau publishes and they are also the noisiest: the median block here holds 26 people, so a single household moving changes its composition by several points. The areal-units chapter is about what happens when you add them together, and it should be read as the other half of this one.

What you should have learned

Extensions

Sources

Data

The data itself

Every figure above is drawn from these tables. They are plain CSV, they open in a spreadsheet, and they are yours to take further.

contour.csv, counts.csv, grid.csv, hex.csv, marginal.csv

One more file is not data about the subject – it is how this chapter checked its own numbers: facts.csv, the individual numbers the text above quotes.


  1. Hexagonal binning was introduced for exactly this problem by D. B. Carr, R. J. Littlefield, W. L. Nicholson and J. S. Littlefield, “Scatterplot Matrix Techniques for Large N,” Journal of the American Statistical Association 82, no. 398 (1987): 424–436, https://www.jstor.org/stable/2289444.↩︎