GitHub

D3 Data Visualization

Compose data, geometry, and interaction with explicit boundaries

8 chapters81 min total
Keywords
D3visualizationcompositionmodularityselectionsscaleslayoutsrenderinginteractionidentity
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
D3visualizationcompositionmodularityselectionsscaleslayoutsrenderinginteractionidentity

Chapters

Preview every chapter · Unlock full text, audio, and video from chapter 4

Plans
Ch.1-3 FreeCh.4-8 Premium

FAQ

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.