Skip to content
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
Branch: master
Clone or download

Latest commit

Latest commit 7244e45 Apr 20, 2020


Type Name Latest commit message Commit time
Failed to load latest commit information.
img Add pack images. Jun 22, 2016
test Add test for d3.event re-export on Node. Related #3055. Jan 20, 2017
.gitignore Prepare for major release. Jan 28, 2018 Update dependencies. Apr 20, 2020 Update Sep 25, 2019 Update Aug 1, 2019
LICENSE Update year to 2017 in License. Closes #3084 Mar 22, 2017 Update Mar 26, 2020
d3.sublime-project Update dependencies. Aug 24, 2018
index.js Update dependencies. Aug 19, 2019
package.json 5.16.0 Apr 20, 2020
rollup.config.js Squelch Rollup warnings. Nov 20, 2019
yarn.lock Update dependencies. Apr 20, 2020

D3: Data-Driven Documents

D3 (or D3.js) is a JavaScript library for visualizing data using web standards. D3 helps you bring data to life using SVG, Canvas and HTML. D3 combines powerful visualization and interaction techniques with a data-driven approach to DOM manipulation, giving you the full capabilities of modern browsers and the freedom to design the right visual interface for your data.



If you use npm, npm install d3. Otherwise, download the latest release. The released bundle supports anonymous AMD, CommonJS, and vanilla environments. You can load directly from, CDNJS, or unpkg. For example:

<script src=""></script>

For the minified version:

<script src=""></script>

You can also use the standalone D3 microlibraries. For example, d3-selection:

<script src=""></script>

D3 is written using ES2015 modules. Create a custom bundle using Rollup, Webpack, or your preferred bundler. To import D3 into an ES2015 application, either import specific symbols from specific D3 modules:

import {scaleLinear} from "d3-scale";

Or import everything into a namespace (here, d3):

import * as d3 from "d3";

In Node:

var d3 = require("d3");

You can also require individual modules and combine them into a d3 object using Object.assign:

var d3 = Object.assign({}, require("d3-format"), require("d3-geo"), require("d3-geo-projection"));
You can’t perform that action at this time.