Book Image

Learn D3.js

By : Helder da Rocha
2 (1)
Book Image

Learn D3.js

2 (1)
By: Helder da Rocha

Overview of this book

This book is a practical hands-on introduction to D3 (Data-driven Documents): the most popular open-source JavaScript library for creating interactive web-based data visualizations. Based entirely on open web standards, D3 provides an integrated collection of tools for efficiently binding data to graphical elements. If you have basic knowledge of HTML, CSS and JavaScript you can use D3.js to create beautiful interactive web-based data visualizations. D3 is not a charting library. It doesn’t contain any pre-defined chart types, but can be used to create whatever visual representations of data you can imagine. The goal of this book is to introduce D3 and provide a learning path so that you obtain a solid understanding of its fundamental concepts, learn to use most of its modules and functions, and gain enough experience to create your own D3 visualizations. You will learn how to create bar, line, pie and scatter charts, trees, dendograms, treemaps, circle packs, chord/ribbon diagrams, sankey diagrams, animated network diagrams, and maps using different geographical projections. Fundamental concepts are explained in each chapter and then applied to a larger example in step-by-step tutorials, complete with full code, from hundreds of examples you can download and run. This book covers D3 version 5 and is based on ES2015 JavaScript.
Table of Contents (13 chapters)

Arcs

The d3.arc() function creates an arc generator, which given an inner and outer radius, and a start and end angle, generates an SVG path data string (or Canvas path commands) that draws a circular or annular sector, such as the ones used in pie and doughnut charts. Besides these charts, arcs can also be used to create radial area charts.

The following code creates a generator function for a 90-degree arc starting at 45 degrees (the origin is at 12 o'clock), with an outer radius of 100 pixels and no inner radius (the arc will be drawn as a slice starting at the origin):

const arc = d3.arc()
.innerRadius(0)
.outerRadius(100)
.startAngle(Math.PI * 45/180)
.endAngle(Math.PI * 135/180);
const slice = arc();
console.log(slice);

The resulting SVG path data string is shown as follows:

M70.71,-70.71A100,100,0,0,1,70.71,70.71L0,0Z

To render the arc...