D3 has an extremely steep learning curve, especially for people who are not familiar with JavaScript.
There are easier ways to make these kinds of plots.
D3 looks really nice, but half the time I try to use it for something that doesn't closely match a Bostock example, I end up giving up and just coding it myself with SVG primitives. I don't understand the motivation behind D3's complex API.
D3 is a functional paradigm for graphics. From the D3 intro: "...styles, attributes, and other properties can be specified as functions of data in D3, not just simple constants."
This sounds trite, but it's enormously powerful and it's what makes D3 worth learning.