D3.js作为一门轻型的可视化类库,非常便于将数据与web界面元素绑定,实现可视化。乐帝d3.js入门是大体看了一遍《d3js数据可视化实战》这本书,D3操作非常类似于jquery的使用,具体体现在两点:
- 选择器模块都采用CSS3标准
- 方法可以链式调用
有了jquery使用基础,相信再加上以上书籍的例子,调试很容易上手使用D3.js,乐帝目前认为D3.js与jquery区别在于:D3.js独有的数据结构概念及对SVG操作方便的实现。而深入理解D3原理,以上皮毛的理解就不够用了。
通过阅读上述书籍乐帝将D3内容划了几大块来分开理解:
DOM操作包括:
- 选择器模块(select、selectAll等方法)及如何实现链式调用。
- 节点模块(append、remove等方法实现)
- 样式模块(attr、style等方法实现)
数据绑定相关方法:
- data方法
- enter、exit等方法
比例尺:
- 值域与输出域的实现
更新、过渡、动画方法:
- transition方法及连带duration、ease、delay等方法
事件:
- 即绑定事件
而后通读API发现对于理解D3.js实现机理有一些关键概念,这里关键概念涉及selection、data join、group、transition等。而乐帝读API最大心得在于,在没有一个大体概念时,千万不要去触碰源码,还是按部就班读API吧,读不懂把文档翻译一遍就懂了,乐帝是这么做的。
这篇文章乐帝主要想讨论data join<