Book Image

D3.js 4.x Data Visualization - Third Edition

By : Aendrew Rininsland, Teller
Book Image

D3.js 4.x Data Visualization - Third Edition

By: Aendrew Rininsland, Teller

Overview of this book

Want to get started with impressive interactive visualizations and implement them in your daily tasks? This book offers the perfect solution-D3.js. It has emerged as the most popular tool for data visualization. This book will teach you how to implement the features of the latest version of D3 while writing JavaScript using the newest tools and technique You will start by setting up the D3 environment and making your first basic bar chart. You will then build stunning SVG and Canvas-based data visualizations while writing testable, extensible code,as accurate and informative as it is visually stimulating. Step-by-step examples walk you through creating, integrating, and debugging different types of visualization and will have you building basic visualizations (such as bar, line, and scatter graphs) in no time. By the end of this book, you will have mastered the techniques necessary to successfully visualize data and will be ready to use D3 to transform any data into an engaging and sophisticated visualization.
Table of Contents (11 chapters)
3
Shape Primitives of D3

Using paths

In Chapter 2, A Primer on DOM, SVG, and CSS, we created a few sundry shapes with a maximum of four points. Although those will get you pretty far drawing basic charts, for complex shapes we'll need to draw paths. Path elements define outlines of shapes that can be filled, stroked, and so on. They are generalizations of all other shapes and can be used to draw nearly anything.

Wait: what about polyline and polygon? While those are also multipoint SVG primitives, they're really pretty much identical to path.

Most of the path's magic stems from the d attribute; it uses a mini language (in programming terms, a domain-specific language, or DSL) of three basic commands:

  • M, meaning moveto
  • L, meaning lineto
  • Z, meaning closepath

To create a path, we might write something like the following:

Create a new folder in lib/ called chapter3/ and put an index.js in...