Seven open-source line-charting libraries building the same annotated chart from the same data, in the same palette, live, below. Not "can it draw a line" — every modern library can — but what an editorial chart costs: direct labels, an annotation with a leader line, a shaded event band, a reference line, and two series emphasised over three.
Every cell is the library's own demo page, embedded — click its name for the full page with the source expanded underneath. What it took to build each one is in BUILD-NOTES.md; the method is in ANALYSIS.md and the scorecard and verdict are in EVALUATION.md.
Low-level toolkit. The quality ceiling — you build every pixel, including the arrowhead.
Concise grammar of graphics from D3's author. Annotation is just another mark.
Charts as declarative JSON specs you can lint and diff. Annotation means layers.
Batteries-included. Shapes, annotations and real arrows for free; a megabyte to ship.
The popular default. Editorial furniture needs a plugin — and end labels need canvas.
Production-hardened. The most complete annotation vocabulary of the seven.
The performance option. ~18 KB and milliseconds — and no annotation model at all.
null break the line or silently bridge it? Only one library gets this right without being told.
Retired after v1: CO₂ at Mauna Loa and BTC-USD daily. Both were "plot a line and let the defaults
do the work", which every library here is good at, so neither told you anything. Their CSVs are
still in assets/data/.
Palette is the validated categorical reference palette (colour-blind-safe, light + dark).
Add a library: copy demos/uplot.html + demos/uplot.js, swap the CDN and the
two render functions, add a cell here.