我为什么选择 D3.js


发布者 ourjs  发布时间 1387176008000
关键字 JS开源  前端 

这不是一篇介绍D3的使用教程,而是只想说说我为什么选择使用D3,借以思考在面对新的技术的时候我该如何选择。

这段时间我在录制一门课程网页上的图表。录制课程前我调查了一下,应该用哪些工具/库来制作图表。可以确定的是,我要用svg来生成图表,而不是用html5中的canvas。开始采用的是Raphaël,一个用来创建和操作网页上矢量图形的javascript库。最开始偏向于使用Raphaël是因为之前看到的一个很漂亮的页面。在费了几天的时间,经过了很多挫折和参考资料没找到太多的情况下,做出了一个凑合的简单的图表。然后我退缩了,直到我发现了D3

D3的缩写是Data Driven Documents,与Raphaël的关系:

相同点

  • 都是用javascript写的针对矢量图的库
  • 都可以对DOM节点进行操作,包括绘制,修改,添加动画效果以及图形的交互

不同点

  • Raphaël是一个矢量图的API,专注于对矢量图形的操作
  • D3是一个数据的API,专注于数据。将数据与网页中的svg元素绑定起来,然后进行一定的操作。比如将一个有5个元素的数组与柱状图表中的5个y坐标值(高度)绑定,然后当数组的数据变化时,柱状图表的高度也会相应的更新

选择D3可以从技术层面上来考虑:

  • SVG比较于Canvas,可以对于DOM直接操作
  • 对比于Raphaël,D3直接对svg元素进行操作性能更好
  • D3不兼容老版本的浏览器,而Raphaël兼容

另外我觉得让我选择D3的最重要的原因就是:她能给我带来一种创作的热情。

热情之一:庞大的用户基数

在github上目前的关注(star)人数已经超过了2万人,非常受欢迎的项目。github的图表也是使用D3来生成的。越来越多的网站开始使用D3,越来越多的数据可视化自由职业者开始涌现,越来越多的培训班专门培训D3.

热情之二:友好开放的社区

D3本身就是一个开源的库,这种开源的精神也形成了一种乐于分享的社区(这里这里)。使用D3的人有开发者,有设计师,还有艺术家,一个活跃而不停有思想火花碰撞的社区。D3的作者本人Mike Bostock也是一个很活跃的人,经常会写一些教程和非常好的实例。

热情之三:大量的资料

虽然D3比Raphaël的学习难度要大一些,但是D3拥有数以千计的实例,大量的教程,我很快的就作出了我想要的东西。

热情之四:美

当我使用D3时,我觉得我不但是一个coder,我还是一个艺术家,我是在创造一种美,给自己带来更大的热情。

你还在等什么,现在就开始你的D3之旅吧。





回复 (2)
微信扫码 立即评论