D3 is a popular JavaScript visualization library. It has been the tool of choice for many designers that need to make highly custom, interactive data visualizations. However, the freedom and control of D3 also carries significant costs such as a steep learning curve, and a significant development cycle time that is typically only viable for polished, final visualizations.

Mike Bostock created D3 in 2011. The library has grown and evolved over time with the aid of many contributors and is now one of a family of visualization tools that includes Observable Plot (a high-level plotting library for exploratory data analysis) and the online data analysis platform and notebook Observable.

The D3 library contains a number of low-level classes dedicated to specific chart elements or features. The concepts below address these foundational elements as well as many of the most commonly used methods that are often used in the scaffolding of a visualization piece.

JavaScript:D3 Concepts

JavaScript:D3 contributors

Looking to contribute?

Learn JavaScript:D3 on Codecademy