Most of the [examples](https://github.com/mbostock/d3/wiki/Gallery) provided are by the author, but there's also a great community writing plugins and more examples.
Ranked in these QuestionsQuestion Ranking
Pro Outputs to canvas and SVG and JSON
When it comes to format compatibility, Fabric is the best, with the ability to output to Canvas, SVG, and JSON. SVG provides backwards compatibility for older browsers, and JSON allows you to store rendered output for later use.
Pro Vector focused API
Drawing objects in fabric are vector focused, so everything is easily transformable. It makes it easy to create complex pathed shapes, add gradients, or filters. Although fabric is great for vector rendering, it also has image support as well.
Pro Great interaction with SVG, excellent coding
If you are about to customize the library to your needs, this is the project of choice! Great programming work!
Pro Out of the box Node.js support
Fabric supports node.js, and has an npm package available for server side rendering with all the dependencies handled for you. This allows you to provide graceful degradation for image fallbacks to canvas or SVG content.
Pro Good support for SVG multi-line text
Allows creating multi-line text that can even be interactively edited by user interaction.
Pro Huge number of examples online
Most of the examples provided are by the author, but there's also a great community writing plugins and more examples.
Pro Large community
D3.js is a very popular tool with an active community, resulting in plenty of learning resources and fast responses to questions.
Pro Doesn't require a proprietary framework
D3's emphasis on web standards gives you the full capabilities of modern browsers without tying yourself to a proprietary framework.
Pro Versatile library for manipulating data on the DOM
Pro Very flexible join paradigm
Can be tricky at first, but once learned, data manipulation and binding can easily generate complex visualizations for massive amounts of data.
Pro Great for highly interactive scenes
D3.js offers incredible levels of interactivity.
Pro Backwards compatible
D3.js is intended for modern browsers, so supports IE9 and above (IE8 with an additional library) as well as all the other modern browsers.
Con No front-end only version via Node
NPM package has major dependencies.
Con A little bit less support for Angular.js
Con Steep learning curve
The complexity and flexibility of D3.js results in it being a time-consuming tool to learn for many users.
Con "Selections" are elegant, but somewhat hard to grok
Selections are core to working with D3 beyond the basics. They're powerful and useful, but require new developers to get up to speed (e.g. set aside 30m to read and digest: https://github.com/mbostock/d3/wiki/Selections) and if used in the context of a larger application will result in a portion of the code using different patterns than the rest, requiring a translation layer in between.