I've played with highcharts and it's pretty simple if you use the json decorator in web2py.
On the other hand, if you want a really free library I'd recommend you to use d3js. The examples in its site are really good and you only need to replace d3.tsv.... by d3.json(... calling the controller and format your data in the controller to return the data in the same format that the tsv file from the example to make them work.
Highcharts is a bit easier than d3js, but it's less flexible and you have to pay a license to use it in a commercial application, while d3js is totally free.
My 20 cents.