Overview
D3 is a low-level JavaScript library for composing dynamic, data-driven graphics from web-standard mechanisms rather than selecting a sealed chart. This series follows the path from preparing values and defining identity through scales, shapes, layouts, projections, SVG or Canvas rendering, and interaction. It shows what each boundary computes, preserves, and implies, while distinguishing direct encodings from computed arrangements and gestures from application state. D3 provides control and inspectable interfaces, but authors still own aggregation, identity, visual meaning, coordination, and claims about accessibility, performance, and comprehension.
Learning outcomes
- D3 is a low-level, modular toolkit for composing data-driven graphics, not primarily a catalog of finished charts.
- Data preparation and joins determine what marks represent and whether their identities persist as data changes.
- Scales, shapes, layouts, projections, and renderers expose different visual choices; none guarantees truthful interpretation.
- Interaction completes a feedback loop, but the application still owns state, coordination, and the meaning of each change.
Keywords
Preview every chapter · Unlock full text, audio, and video from chapter 4
PlansFAQ
What is D3 used for?
D3 is used to build dynamic, data-driven visualizations in the browser by composing data preparation, selections, scales, shapes, layouts, renderers, and interaction.
Is D3 a library of ready-made charts?
D3 is not primarily a menu of finished charts; it provides lower-level mechanisms that authors connect to construct familiar or custom graphics.
How does D3 preserve identity when data changes?
D3 preserves continuity through keyed joins when the key represents the intended stable entity; without a key, it matches data to elements by position.
What decisions does D3 leave to the author?
D3 leaves the author to choose the aggregation, identity, visual encoding, layout or projection, renderer, and interaction meaning; it does not guarantee accessibility, performance, or comprehension.