Web开发过程中选择使用哪一个插件是很重要的问题。就我个人而言,一般会从以下几点考虑。
1.兼容性
使用一个插件之前必须要先评估一下它对浏览器的兼容性,不然写完了发现没法儿用就得不偿失了。
经过多次尝试,我初步判断这三个插件的兼容性是这样的:
Highcharts 兼容 IE6 及以上的所有主流浏览器,完美支持移动端缩放、手势操作。
F1v无知
Echarts 兼容 IE6 及以上的所有主流浏览器,同样支持移动端的缩放和手势操作。
F1v无知
D3 兼容IE9 及以上的所有主流浏览器,对于移动端的兼容性也同上。F1v无知
也就是说, 这三个插件都兼容IE9及以上的所有主流浏览器,但如果开发需求中包括IE7/IE8,那么就只能选择Highcharts或者Echarts了。
2.是否免费/开源
Highcharts 非商业免费,商业需授权,代码开源。F1v无知
Echarts 完全免费,代码开源。F1v无知
D3 完全免费,代码开源。F1v无知
考虑到 Highcharts用于商业用途时还需要授权,而其它两个都不需要,那么在其他条件都相同的情况下,可以考虑用另外两个插件。
3.难易程度
Highcharts 基于SVG,方便自己定制,但图表类型有限。F1v无知
Echarts 基于Canvas,适用于数据量比较大的情况。F1v无知
D3.v3 基于SVG,方便自己定制;D3.v4支持Canvas+SVG,如果计算比较密集,也可以选择用Canvas。除此之外,D3图表类型非常丰富,几乎可以满足所有开发需求,但代码相对于以上两个插件来说,会稍微难一点。F1v无知
基于此,如果你能力很强,可以直接用D3。反之,如果你是一个初学者或者对于这方面没那么熟悉,那么就要从这几点来考虑了:如果数据量比较大,可以考虑Echarts;如果只是一些简单的数据,且客户对界面定制较多,则可以考虑使用highcharts;如果前两者都不能满足需求,那么就只能用D3来一点一点做了。F1v无知
F1v无知
而这些都是基于SVG 和Canvas的,那么下边是他们的区别F1v无知
F1v无知
CanvasF1v无知
F1v无知
依赖分辨率F1v无知
不支持事件处理器F1v无知
文本渲染力弱F1v无知
能够以 .png 或 .jpg 的格式保存结果图形F1v无知
最合适图像密集型的游戏,其中许多的对象会被频繁的重绘F1v无知
SVGF1v无知
F1v无知
不依赖分辨率F1v无知
支持事件处理器F1v无知
最合适带有大型渲染区域的应用程序(如,百度地图、谷歌地图等等)F1v无知
不适合游戏的应用F1v无知
复杂度高会减慢渲染的速度F1v无知
以单个文件的形式独立存在,后缀名为.svg,可以在html文件中以img标签的src,元素背景,框架等引入 或者 直接在html文件中引入SVG标签F1v无知
一般:F1v无知
1、开发时间短,所以也就限制了D3.js的使用。F1v无知
2、要尽量的减少开发的成本,所以也就不能使用hightcharts.js(hightcharts是一款个人免费,商业付费的框架)。所以在再三的比对之下最终选择了echarts.jsF1v无知