The Vibeary — round-up

Best charting libraries for the web

Charting libraries are not interchangeable. Some are declarative and perfect for standard dashboards; some are low-level and let you draw anything at the cost of writing more code; some are built for hundreds of thousands of points and will beat every competitor on a scatter plot that others cannot render at all. This list is organised around that reality, covering full charting engines and the D3 plugin ecosystem, so you can choose by the shape of your data and the interactivity you need rather than by download count.

What earned a place

  • Handles the data volume it claims to, in a real browser
  • Accessible output: labels, keyboard access, non-colour encoding
  • Reasonable bundle size or modular imports
  • Documented API rather than example-driven guesswork

24 picks from the library

  1. 01

    billboard.js

    D3-based reusable chart library from Naver with a compact API, plugin system and unusually complete TypeScript definitions.

    Why it made the list: The maintained successor to c3.js, still shipping releases years later

    Charting enginesMITNaver (@naver)github.com

    billboard.js preview
  2. 02

    chart-parts

    Grammar of graphics for React from Microsoft Research, a React-native reimplementation of Vega's compositional model.

    Why it made the list: Vega's grammar expressed as ordinary React components you can inspect

    Charting enginesMITMicrosoft (@microsoft)github.com

    chart-parts preview
  3. 03

    ChartGPU

    WebGPU-rendered charting library aimed at datasets large enough to stall canvas and SVG renderers.

    Why it made the list: One of the first serious WebGPU charting stacks, not a demo

    Charting enginesopen-sourceChartGPU (@ChartGPU)github.com

    ChartGPU preview
  4. 04

    Cubism.js

    D3 plugin for horizon charts, a time-series encoding that stacks many metrics in a fraction of the vertical space.

    Why it made the list: Horizon charts fit 20 metrics where line charts fit two

    Charting enginesApache-2.0Square / Mike Bostock (@mbostock)github.com

    Cubism.js preview
  5. 05

    d3-annotation

    Annotation layer for D3 with badge, callout, curve and threshold annotation types plus draggable editing during design.

    Why it made the list: Annotation is what separates a chart from an explanation; this makes it trivial

    D3 pluginsMITSusie Lu (@DataToViz)github.com

    d3-annotation preview
  6. 06

    d3-area-label

    Places labels inside stacked area bands at the largest fitting position, sized and rotated automatically.

    Why it made the list: Solves the one problem that makes streamgraphs unusable in production

    D3 pluginsMITCurran Kelleher (@currankelleher)github.com

    d3-area-label preview
  7. 07

    d3-beeswarm

    Layout plugin that computes non-overlapping beeswarm arrangements for one-dimensional distributions, so every individual data point stays visible.

    Why it made the list: Beeswarms show every data point where a boxplot hides the shape

    D3 pluginsopen-sourceFranck Lebeau (@Kcnarf)github.com

    d3-beeswarm preview
  8. 08

    d3-cloud

    Word cloud layout that places words with sprite-based collision detection, running asynchronously so it never blocks the page.

    Why it made the list: The layout every word cloud on the web is secretly running

    D3 pluginsopen-sourceJason Davies (@jasondavies)github.com

    d3-cloud preview
  9. 09

    d3-composite-projections

    Map projections that place distant territories such as Alaska, Hawaii and French overseas regions next to the mainland.

    Why it made the list: Ready-made inset composites for 15+ countries instead of manual clipping

    D3 pluginsMITRoger Veciana (@rveciana)github.com

    d3-composite-projections preview
  10. 10

    d3-dag

    Layout algorithms for directed acyclic graphs — Sugiyama, zherebko and grid — as a d3-hierarchy-style module.

    Why it made the list: Proper DAG layering without shelling out to Graphviz or dagre

    D3 pluginsMITErik Brinkman (@erikbrinkman)github.com

    d3-dag preview
  11. 11

    d3-flame-graph

    Flame graph component for profiling and any hierarchical data, with search, zoom and differential comparison modes.

    Why it made the list: Differential flame graphs for before/after comparisons, built in

    D3 pluginsApache-2.0Martin Spier (@spiermar)github.com

    d3-flame-graph preview
  12. 12

    d3-force-sampled

    Drop-in replacement for d3-force using random vertex sampling for linear-time layouts on large graphs.

    Why it made the list: Same API as d3-force but survives graphs with tens of thousands of nodes

    D3 pluginsopen-sourceTwo Six Labs (@twosixlabs)github.com

    d3-force-sampled preview
  13. 13

    d3-geo-scale-bar

    Generates correct scale bars for projected geospatial data, accounting for distortion at the bar's location.

    Why it made the list: Most web maps ship a scale bar that is quietly wrong; this one isn't

    D3 pluginsMITHarry Stevens (@Harry_Stevens)github.com

    d3-geo-scale-bar preview
  14. 14

    d3-geo-voronoi

    Spherical Voronoi diagrams and Delaunay triangulation computed on the globe rather than a flat plane.

    Why it made the list: Correct Voronoi cells near poles and antimeridian where planar libs break

    D3 pluginsMITPhilippe Rivière (@recifs)github.com

    d3-geo-voronoi preview
  15. 15

    d3-inertia

    Extends d3-drag so globe rotation keeps spinning with momentum after the pointer is released.

    Why it made the list: Makes a D3 orthographic globe feel like a native app for 3KB

    D3 pluginsMITPhilippe Rivière (@recifs)github.com

    d3-inertia preview
  16. 16

    d3-interpolate-path

    Path interpolator that handles transitions between paths with different numbers of points without visual jumping.

    Why it made the list: Fixes the ugliest bug in every animated line chart in one import

    D3 pluginsopen-sourcePeter Beshai (@pbeshai)github.com

    d3-interpolate-path preview
  17. 17

    d3-jetpack

    Convenience wrappers over D3 selections adding appendMany, translate, at/st shorthands and tspan wrapping.

    Why it made the list: Cuts D3 boilerplate roughly in half; used across Datawrapper's origins

    D3 pluginsopen-sourceGregor Aisch (@driven_by_data)github.com

    d3-jetpack preview
  18. 18

    d3-lasso

    Free-form lasso selection for D3 charts, letting users draw around points to filter scatterplots.

    Why it made the list: Lasso select is what makes a scatterplot an exploration tool

    D3 pluginsopen-sourceSteven Okenes (@skokenes)github.com

    d3-lasso preview
  19. 19

    d3-legend

    Legend generator for D3 colour, size and symbol scales that stays in sync with the scale it was built from.

    Why it made the list: Legends derived from the scale can't drift out of sync with the chart

    D3 pluginsMITSusie Lu (@DataToViz)github.com

    d3-legend preview
  20. 20

    d3-loom

    Layout for loom diagrams, a chord-diagram variant that shows relationships between entities and a shared centre.

    Why it made the list: A chart form that basically only exists because Nadieh Bremer invented it

    D3 pluginsMITNadieh Bremer (@NadiehBremer)github.com

    d3-loom preview
  21. 21

    d3-scale-cluster

    Scale that bins continuous data into discrete classes using k-means clustering rather than quantile or equal-interval breaks.

    Why it made the list: Jenks-style natural breaks for choropleths, as a normal D3 scale

    D3 pluginsMITDan Schnerd (@schnerd)github.com

    d3-scale-cluster preview
  22. 22

    d3-upset

    UpSet plot implementation for visualising intersections across many sets where Venn diagrams break down.

    Why it made the list: The correct chart for 5+ overlapping sets, rarely available in JS

    D3 pluginsMITChuntul (@chuntul)github.com

    d3-upset preview
  23. 23

    d3-voronoi-treemap

    Treemap layout that packs hierarchies into arbitrary shapes using Voronoi tessellation instead of nested rectangles.

    Why it made the list: Fit a treemap inside a circle, a country outline or a logo

    D3 pluginsopen-sourceFranck Lebeau (@Kcnarf)github.com

    d3-voronoi-treemap preview
  24. 24

    d3-x3d

    Data-driven 3D charts rendering to X3D/X3DOM, covering 3D bar, scatter, surface and bubble charts.

    Why it made the list: 3D charts that stay declarative D3 instead of becoming a Three.js project

    D3 pluginsGPLJames Saunders (@jamesleesaunders)github.com

    d3-x3d preview

Questions

D3 or a charting library?
A charting library for standard charts on a deadline; D3 when the visualisation is bespoke and the layout is the interesting part.
How do I make charts accessible?
Provide a data table alternative, do not encode meaning in colour alone, and label axes and series in the DOM.
All round-upsSearch all gemsNewest additions