D3.js is a framework where you can fairly easily get something up and running as a derivative of a previous work (and there are a LOT of examples (http://christopheviau.com/d3list/gallery.html)) but once you get into the realm of creating something unique, you need to have a deeper understanding of what is going on in the code.