Appendix A. Appendix: Further Study

You are a trouper for making it this far. We’ve covered a lot of ground, and by now you have a decent handle on D3’s basic concepts and common techniques. If you’ve learned anything, I hope it’s that there are always several (or tens, or hundreds of) ways to accomplish the same task—that’s the joy of programming, right? I’ve presented the ways that, to me, are the simplest or most intuitive, and the least difficult to understand. But there are probably better ways to do anything that you learned in this book, whether “better” means “more computationally efficient” or “makes more sense to you and your way of working.” I’m a fan of the latter definition. Programming is like solving a puzzle; it’s up to you to figure out how to tell the computer what to do what you want—using language that you, the human, can still understand.

D3 is a powerful tool, and we’ve only scratched the surface. As you begin work on your own visualization projects, you’ll discover many additional helpful methods and sneaky shortcuts. There are lots of valuable bits that I didn’t cover here, such as D3’s built-in methods for working with date and time values, dynamically selecting and calculating colors, and painlessly manipulating arrays, for all your client-side data processing needs—just to name a few. There is a lot to this tool. I’ve tried to introduce you to the core concepts, and now you’re ready to go dig into the pieces that really interest you.

So, where to turn next? Here’s a collection of valuable resources to aid you in your quest. Keep in mind that the D3 software itself is still evolving, and so are these resources. By the time you read this, there might be some other helpful website or set of tutorials not mentioned here. That is why I recommend that you don’t just read, but get involved with the D3 community. Join the Google Group, follow people on Twitter, and keep your eyes open for the latest developments. Start a discussion, and meet fellow data visualizers in your local area. If there aren’t D3 datavis groups getting together in your area yet, then start one yourself. The more we can learn from each other, the better.

After all, having worked through this book, you’re part of the community now (whether you like it or not). Welcome!


Getting Starting with D3 by Mike Dewar. O’Reilly, 2012.

Yes, there’s only one other book on D3 so far. Mike Dewar’s introduction tackles some more advanced topics, and includes sample projects with real-world data from New York City’s transportation system. (Fun!)

Your starting point for everything D3.
The D3 gallery contains hundreds of examples. Add your own work!
Even more examples, in this case all by Mike Bostock, each one typically highlighting just one of D3’s features.
The D3 API reference, an essential reference for every method and its parameters.
When you get stuck, post questions on StackOverflow with the d3.js tag.!forum/d3-js
Everyone who’s anyone is on the D3 Google Group. Find out about the latest projects and developments here. (Please save technical questions for StackOverflow.)
A service for posting code hosted on GitHub’s Gist, by Mike Bostock. Perfect for quickly sharing your work with others, such as when seeking help on StackOverflow or boasting about your latest triumph on the Google Group.
An excellent tutorial on Creating Animations and Transitions With D3 with lots of inline, interactive examples by Jérôme Cukier.
A new, promising resource for D3 tips and tricks.
A live-coding environment for experimenting with D3 code, by Ian Johnson.
D3 Plug-ins
A listing of all the official plug-ins that extend D3’s functionality, in case it doesn’t do enough for you already.


Twitter is a great way to find out about the latest projects and D3 developments. At the risk of omitting many amazing people, here are some you should follow:

Mike Bostock, for announcements on D3’s progress as well as new visualizations for The New York Times.
Jason Davies, for all manner of geographic and mathematical mapping experiments.
Christophe Viau, for frequent updates from all over the D3 universe.
Ian Johnson, for loads of new coding tools and techniques, plus video tutorials.
Kai Chang, for too many D3 experiments to count.
Jérôme Cukier, for innovative visualization projects with insightful process notes.
Anna Powell-Smith, for beautiful interactive visualizations that explore personally relevant data.
Jim Vallandingham, for excellent process notes on projects as well as great tutorials.
Scott Murray, for learning about errata, updates, and revisions to this book, as well as future data-driven projects.

I should acknowledge that, yes, there are mostly men listed here. As of this writing, the community of D3 users and contributors tends to skew quite male. I hope that future editions of this book can confidently include a more diverse listing.