JS. It has an extensive API and is very powerful. But it has a pretty steep learning curve. Other frameworks like Highcharts or E Charts are easier to use
NVD3 Re-usable charts for d3.js This project is an attempt to build re-usable charts and chart components charts and chart components for d3.js without taking away the power that d3.js gives you. This is the only required library for NVD3.