This is book was especially useful to me. I’ve been using D3 to develop Guitar Dashboard, my open-source music theory explorer for guitarists, for several years now. Guitar Dashboard is not a traditional data visualisation, the input data are scales and chords and the visualisations are a guitar fretboard and a circle of fifths, so it’s a good demonstration of D3’s power and flexibility. I learnt D3 by reading the documentation, much Googling, and trial and error, but I’ve always felt I was just scratching the surface of what it could do. Reading this in depth book taught me things about D3 that I didn’t fully appreciate and clarified many of the core concepts.
The book is intelligently structured and well written. Peter’s experience teaching D3 courses to students of different abilities is readily apparent. The book follows the development of a relatively complex visualisation, Energy Explorer, which shows the energy mix between renewable, fossil fuels, nuclear, etc for different countries. He provides the code at the completion of each chapter so you can work along with him developing the application. I’m an experienced software developer, but I was continually impressed by the lengths Peter goes to to explain each concept carefully. I’m sure that it would be possible to work through the whole book as a relative beginner.
He takes a step by step approach, introducing each new D3 feature first and then applying that feature to Energy Explorer. Along the way we also learn some architectural strategies for web applications, including the Flux pattern, and some useful additional libraries such as Flourish and Lodash.
D3 also includes a large library of modules to help with building visualisations. Several of the most important get thorough coverage in the book, including the Fetch module for loading data from external sources, the Scale functions for mapping data to UI values, and Transitions for animating changes to a visualisation. In each case the library functions are introduced and then applied to Energy Explorer, giving a practical example of their use.
In conclusion I’d very much recommend this book to anyone who needs to rapidly get up to speed with D3, whether they are an experienced developer or a relative novice. It will give you all the tools and knowledge to create professional grade visualisations. Then it’s just up to your imagination how you want to use it.