Field note · May 10, 2025
The chart rules behind Chart Builder
Point it at any dataset, choose an x, a y, and a grouping, and get a chart that follows the rules — one axis, direct labels, a real legend, and a table view underneath.
Every chart this site draws follows the same rules, and they are enforced in code rather than left to whoever is writing the page.
One y-axis, never two — a dual axis lets you manufacture any correlation you like by choosing scales. Colour keyed to the entity rather than its rank, so filtering a series never repaints the survivors. Eight series maximum on bars and lines, three on scatter. A legend whenever there is more than one series. And a table under every chart, so the chart is never the only way to read a number.
The series caps are the rules people push back on most, and they are the ones we are most confident about. Past roughly eight lines, a chart stops being read and starts being scanned for the one line someone already came looking for. Three on scatter is tighter still, because every pair of colours ends up adjacent somewhere in the cloud, and two colours that are distinguishable in a legend are not necessarily distinguishable when the points overlap.
The table under every chart is the rule that does the most work for the least effort. It costs a few lines of markup and it removes the entire class of dispute where two people read different values off the same bar.
The palette was validated against colour-vision deficiency with a script, measured on both the light and dark chart surfaces, rather than picked by eye. Three earlier attempts failed that check.
Chart Builder — Point it at any dataset, choose an x, a y, and a grouping, and get a chart that follows the rules — one axis, direct labels, a real legend, and a table view underneath.
All seven tools are on the toolkit page, and every one of them reads the same dataset library.