d3 is amazing. There is no doubt about it. If you have a decent amount of time then perhaps you can start with this http://christopheviau.com/d3_tutorial/
Other than this, i have previously worked with Rickshaw(http://code.shutterstock.com/rickshaw/) as well. Although, i found it incredibly easy to implement, i personally find it a little poorly documented and found less resources and difficult to modify and play around.
With HTML5 canvas, be sure to check out the new ChartJS (http://www.chartjs.org/).
A more simpler & easily configurable option is definitely RaphaelJS (http://raphaeljs.com/). Be sure to check out g.Raphael as well (http://g.raphaeljs.com/).
Other than this, i have previously worked with Rickshaw(http://code.shutterstock.com/rickshaw/) as well. Although, i found it incredibly easy to implement, i personally find it a little poorly documented and found less resources and difficult to modify and play around. With HTML5 canvas, be sure to check out the new ChartJS (http://www.chartjs.org/).
If in case, you are ready to shell out then HighCharts(http://www.highcharts.com/) and perhaps FusionCharts(http://www.fusioncharts.com/) are the way to go. Personally, i think i would go with Raphael.