There is a [github repo][1] with code to accompany this post. Contributions are encouraged!
[D3][2] stands for Data-Driven Documents, and is described by the authors as follows:
"D3.js is a JavaScript library for manipulating documents based on data. D3 helps you bring data to life using HTML, SVG and CSS. D3โs emphasis on web standards gives you the full capabilities of modern browsers without tying yourself to a proprietary framework, combining powerful visualization components and a data-driven approach to DOM manipulation."
An Angular Directive is a way to extend the functionality of HTML. This can be done multiple ways, but the most useful for our purposes now is restricting the directive to an element tag. For more information see the post about how to [Build custom directives with AngularJS][3]