解决方法
我会给你一个可能性的破坏:
> Highcharts是一个很好的开箱即用的解决方案.我在一个项目中使用它非常成功.它有文档的缺点,并在GitHub正在积极开发.它很容易使用,很漂亮(不要低估外观“功能”),并且是互动的:您可以绑定/附加到元素上的事件像“悬停在酒吧”或“点击一个点”.一个商业用途的网站花费80美元(非商业用途是免费的).
> Ext JS 4.另一个开箱即用的解决方案是最近(2011年4月)发布的第四版流行的JavaScript库Ext JS.这个第四版本现在支持无插件的图表(即没有Flash,只是SVG和VML这样的本地技术,因此它可以跨浏览器工作.如果你习惯于桌面或企业功能,那么你通常在Javascript库中找不到像窗口,布局管理器,MVC,拖放,工具栏,菜单,表单等,这绝对是你看的,例子here.
> gRaphaël是另一个很棒的图书馆,也是麻省理工学院的许可证(免费用于商业用途!).它看起来更多的“Flash-y”,并且更加开发者友好/密集.所以你必须自己编写很多东西(这不是一个完整的解决方案,如Highcharts),但是如果你能流利的jQuery,你会感觉到在家里:).它的力量是编码任何你想要的东西,你可以做很多的动画,像在jQuery.图中的所有元素都是SVG节点,因此您可以将事件附加到每个元素,并执行一些强大的内容.演示值得一试.
> Flot.像alexn所说,你可以使用Flot,但我曾经使用过一次,并不是很喜欢它.我不知道究竟是不是对我来说,这是一个主观的事情.我不太喜欢它的样子,但这只是我.自己看看
>其他图书馆,如RGraph或Zingchart.我没有使用任何这些,这纯粹是从我所看到的:他们看起来像他们的婴儿时尚/不抛光.我希望他们会改善,但是看看他们,选择你的赢家.
但是你说你想要基于画布的控件.这是为什么?是因为画布是沿着HTML5销售的.看到,Highcharts和gRaphaël不是画布,但我认为这是你想要的,所以我把它们反正. gRaphaël的工作原理是这样的(Highcharts在引擎盖下工作方式相同,但对开发人员来说是隐藏的):gRaphaël给你一个API(例如,piechart()),然后创建大量的SVG元素(将它们看作< div> ;但更复杂的形状和图形过滤器),然后绘制.您还可以为这些元素设置事件处理程序.但是由于IE不支持SVG(这是一个令人震惊的),库会将这些API调用转换成为IE创建VML. 但画布是不同的.没有“元素”本身,您只是绘制线条和形状,但您不能仅仅使用事件处理程序绑定到他们的事件.所以对于我来说,SVG是更好的(你应该看到一些SVG的图形过滤器,如模糊),我认为图书馆更成熟. 但是不要以为我的话;).看看他们,告诉我你的想法.