Tho only drawback I see with nvd3.js is that we can't generate png images of the graphs, server-side, for email of PDF export. Is there an nvd3-js-to-png.java ;)?
Note: you can use apt-get install npm and npm to install phantomjs which is not a node.js program but for some reason is on npm, or you can just rent an entire AWS region to compile phantomjs from sources in your preferred linux distribution.
How can I tell?
If the graph renders to canvas, you can get a data url for the image and send that to a server for decoding/storage.