0%

数据可视化入门

D3.js 和 Echart

原文:D3.js与echart.js的应用场景

echarts和D3都是常用的数据可视化库,实现了能应用于各场景的图表等插件,两者之间的不同之处就在于echarts是使用canvas来绘制图形的,而D3是通过Svg来绘制图形的。svg可以操作dom支持事件处理器,想要实现某个操作,直接调用相关的方法实现效果就行,svg操作存在链式语法,与jQuery的链式调用差不多,简单易读。canvas不支持事件处理器所以只能展示数据,而不能修改。

  • D3使用svg绘制图形,echarts使用canvas绘制图形
  • D3兼容IE9及以上主流浏览器,echarts兼容IE6及以上主流浏览器
  • D3使用灵活,学习成本大,echarts封装好的,使用简单,不够灵活

因为D3支持事件处理器可以操作dom,所以如果在项目开发中如果有较多用户交互的场景,可以使用D3.如果项目中一般没有用户交互的场景,我们只需要将图表展示给用户看,而不需要更改,可以使用echarts。因为D3它展示的每一个数据都是一个标签,所以当数据发生改变的时候图表会重新渲染,会不停的操作dom,这对性能的消耗是非常大的(存疑,对于同样需要交互的需求,究竟是D3因为绑定了数据的dom频繁渲染消耗大,还是任意修改都需要重绘整个canvas的Echart消耗大呢?)。