← Zurück zu Mediendesign & Digitale Medien
D3.js (Data-Driven Documents) ist eine JavaScript-Bibliothek, die Daten direkt an DOM-Elemente bindet und damit vollständig individuelle, interaktive Datenvisualisierungen im Webbrowser ermöglicht – die leistungsstärkste, aber auch anspruchsvollste Option in der Visualisierungsentwicklung.

Rubrik: Mediendesign & Digitale Medien · Unterrubrik: Infografik & Datenvisualisierung · Niveau: Einsteiger Synonyme / Auch bekannt als: Data-Driven Documents, D3, d3.js

Was ist D3.js?

D3.js wurde 2011 von Mike Bostock (damals Stanford, später New York Times) entwickelt und ist heute die Standardbibliothek für individuelle Datenvisualisierungen im Web. Anders als Datawrapper oder Flourish bietet D3 keine fertigen Chart-Typen, sondern Bausteine: Skalenfunktionen, Achsengeneratoren, Layout-Algorithmen, Geo-Projektionen, Farbskaleninterpolatoren. Der Entwickler baut aus diesen Bausteinen das Chart von Grund auf. Das ermöglicht vollständige Gestaltungsfreiheit und nahtlose Integration in jede Webseite.

Erklärung

Das Kernkonzept – Data Binding: Das Herzstück von D3 ist das Binden von Daten an DOM-Elemente. Mit .data() werden Daten an eine Selektion von HTML- oder SVG-Elementen gebunden. .enter() erzeugt für jeden Datenpunkt, der noch kein entsprechendes Element hat, ein neues Element. .exit() entfernt Elemente, für die es keine Daten mehr gibt. Diese Mechanik ermöglicht effiziente Updates und Animationen.

```javascript // Vereinfachtes D3-Beispiel: Balkendiagramm const data = [30, 80, 45, 60, 20, 90, 50];

const svg = d3.select("body").append("svg") .attr("width", 500).attr("height", 200);

svg.selectAll("rect") .data(data) .enter().append("rect") .attr("x", (d, i) => i 70) .attr("y", d => 200 - d 2) .attr("width", 60) .attr("height", d => d * 2) .attr("fill", "steelblue"); ```

Skalenfunktionen: D3 bietet lineare, logarithmische, Zeitachsen-, Ordinal- und viele weitere Skalen, die Datenwerte auf visuelle Eigenschaften (Pixel, Farben, Größen) abbilden. d3.scaleLinear().domain([0, 100]).range([0, 400]) mappiert Datenwerte 0–100 auf 0–400 Pixel.

SVG vs. Canvas: D3 arbeitet standardmäßig mit SVG (Scalable Vector Graphics) – ideal für bis zu einige tausend Elemente, mit Interaktivität und CSS-Styling. Für sehr große Datensätze (Millionen Punkte) sollte Canvas verwendet werden; D3 unterstützt beides.

Lernkurve: D3 hat eine der steilsten Lernkurven aller Visualisierungswerkzeuge. Voraussetzungen: HTML, CSS, JavaScript (ES6+), Grundkenntnisse SVG, Verständnis von asynchronem Laden. Die Investition lohnt sich für Entwickler in Medienredaktionen, Forschungseinrichtungen und Agenturen, die regelmäßig individuelle Visualisierungen erstellen.

Modularer Aufbau (D3 v7): Moderne D3 ist in Module aufgeteilt (d3-scale, d3-axis, d3-geo, etc.), die separat importiert werden können. Dies reduziert die Dateigröße und ermöglicht selektive Nutzung. Viele Entwickler nutzen nur einzelne D3-Module innerhalb von React oder Vue.js.

Observablehq: Mike Bostock hat mit Observable (observablehq.com) eine reaktive Notebook-Plattform geschaffen, auf der tausende D3-Beispiele direkt im Browser exploriert und modifiziert werden können. Es ist die wichtigste Lern- und Inspirationsressource für D3.

Beispiele

  1. New York Times – Wahlkarten: Interaktive Choropleth-Karten auf Wahlkreisebene mit Zoom und Detailansicht – ein klassisches D3-Großprojekt.
  2. The Guardian – Infografiken: Individuelle Zeitreisenvisualisierungen und Scrollytelling-Formate, die mit Standard-Tools nicht realisierbar wären.
  3. Netzwerkgraph – Wikipedia-Verlinkungen: Interaktiver Force-directed Graph, der zeigt, wie Wikipedia-Artikel miteinander verlinkt sind.
  4. Animierter Bubble Chart – UN-Daten: Hans-Rosling-Style Gapminder-Klon, vollständig in D3 mit Zeitslider und Play-Button implementiert.
  5. Hierarchische Treemap – Staatsbudget: Klickbare Treemap mit drei Hierarchieebenen, bei der jeder Klick auf eine Kachel in die nächste Ebene zoomed (Zoomable Treemap).

In der Praxis

Einstieg: Observable (observablehq.com/@d3) ist der beste Startpunkt – fertige, bearbeitbare Notebooks für alle Chart-Typen. Für lokale Entwicklung: Node.js + Vite oder einfaches HTML/JS im Browser (D3 kann direkt per CDN eingebunden werden). VS Code mit Live Server Extension ist die empfohlene Entwicklungsumgebung.

Workflow-Tipps:

  • Nie von Null beginnen – immer ein passendes Observable-Beispiel als Startpunkt nehmen
  • Daten als JSON oder CSV laden (d3.json(), d3.csv())
  • Responsive Charts: Breite aus dem Container-Element lesen, nicht hardcoden
  • Transitions für Animationen: selection.transition().duration(1000).attr("x", newX)
  • Barrierefreiheit: ARIA-Labels für SVG-Elemente ergänzen

Alternativen zu D3: Vega-Lite (hochleveliger, deklarativer Ansatz), Chart.js (einfacher für Standard-Charts), Plotly.js (mehr fertige Chart-Typen), Observable Plot (Mikes neueres, einsteigerfreundlicheres Tool).

Vergleich & Abgrenzung

KriteriumD3.jsDatawrapperFlourish
GestaltungsfreiheitVollständigBegrenztHoch
EinstiegshürdeSehr hochSehr niedrigNiedrig
InteraktivitätUnbegrenztStandardGut
EntwicklungszeitHochSehr niedrigNiedrig
Performance (große Daten)Sehr gut (Canvas)EingeschränktEingeschränkt

Häufige Fragen (FAQ)

Wann sollte man D3.js verwenden? Wenn der gewünschte Chart-Typ nicht in Datawrapper oder Flourish verfügbar ist, wenn vollständige Gestaltungskontrolle notwendig ist, wenn komplexe Interaktivität (Zoom, Filter, verknüpfte Views) gefordert ist oder wenn D3 in eine bestehende Web-Applikation integriert werden muss. Für Standard-Charts ist der Aufwand oft nicht gerechtfertigt.

Welche häufigen Fehler gibt es bei D3.js? Fehlende Fehlerbehandlung beim Datenladen, inkorrekte Skalendefinitionen (Domain/Range vertauscht), SVG-Elemente außerhalb des sichtbaren Bereichs (vergessenes Margin-Convention-Pattern), nicht-reaktive Charts bei Fenstergrößenänderung und mangelnde Barrierefreiheit (fehlende ARIA-Attribute, kein Keyboard-Support).

Verwandte Einträge

Weiterführend

  • Bostock, Mike (2011): D3. Data-Driven Documents. In: IEEE Transactions on Visualization and Computer Graphics, 17 (12), S. 2301–2309.
  • Murray, Scott (2017): Interactive Data Visualization for the Web. 2. Auflage. Sebastopol: O'Reilly.
  • Observable D3-Gallery: observablehq.com/@d3/gallery
← Zurück zu Mediendesign & Digitale Medien
Infotag · 13. Mai · 15:00 Uhr · Vor Ort

Sei am Mittwoch dabei.
Bring Eltern oder Freunde mit.

Ein halber Nachmittag, der dir drei Jahre Klarheit bringen kann. Kostenlos, unverbindlich, ehrlich.

  • Rundgang durch Studios, Schnitträume und Tonstudio
  • Echte Absolventenfilme sehen
  • 1:1-Beratung zu Bewerbung & BAföG
  • Studierende direkt fragen
  • Kaffee, kein Sales-Pitch
  • Auch online möglich

Platz beim Infotag reservieren

Dauert 30 Sekunden. Bestätigung per E-Mail.
100 % kostenlos · keine Verpflichtung · jederzeit absagbar
D3.js Grundlagen — Wiki | Lazi Akademie | Lazi Akademie Esslingen