Search for a command to run...
JavaScript library for bespoke data visualization built on web standards. It provides a low-level toolbox for creating dynamic, data-driven graphics with SVG, Canvas, and HTML, where you compose primitives rather than assembling predefined charts. D3 binds data to DOM elements and lets you control exactly what happens when data changes.
Created at Stanford in 2011 and maintained by Observable. Recognized with the IEEE VIS Test of Time Award and the Information is Beautiful Test of Time Award for bringing data visualization to the mainstream. Many higher-level chart libraries build on D3, and it powers graphics at media organizations and across newsrooms. Unlike high-level charting libraries, D3 has no chart abstraction, which means more code for common tasks but complete control over every visual detail.
Key capabilities:
Use D3 when you need maximal expressiveness for one-off or high-impact visualizations, when standard chart libraries are too limiting, or when building interactive explorable graphics that respond to user input. Fits well in newsrooms, public-facing dashboards, and research tools where design clarity matters. Pairs with React, Vue, and Svelte for integration into modern web apps.