# 导读
# D3
D3全称 Data-Driven Documents
,意思是数据驱动文档,也就是操作数据,使其驱动页面数据的展示变化, 每个单词的开头D就是它D3简写的由来。
D3其实是D3.js,后缀.js因为D3是一个JavaScript程序库,可以结合HTML,SVG,Canvas,CSS来处理数据展示。
D3 2011年面世,同年的8月发布了2.0.0版。到2018年4月,D3已更新到了5.5.0版,当前已经更新到了7.6.1版本,D3是非常成熟的工具库。
D3是一个使用动态图形进行数据可视化的JavaScript程序库。可以使用现有的SVG、Canvas、JavaScript和CSS来帮助展示数据,与W3C标准兼容。无论浏览器怎么迭代更新,D3 都不会过时。
D3 的设计理念是把数据映射到视觉元素(形状、长度、方向、角度、颜色、面积、文本等)并通过视觉元素的组合来进行数据可视化。与其他的程序库相比,D3对视图结果有很大的可控性,因此,D3 更加灵活,更加适用于创建定制化的交互式数据可视化。
# 学习D3前需要掌握
预备知识:HTML,CSS,JS,SVG/Canvas
编辑器:Notepad++、Sublime、VS Code 等,选择自己喜欢的即可
浏览器:Chrome、Firefox、Opera、safari、QQ浏览器、360极速模式等,推荐用 Chrome,不支持IE、360兼容模式
# 该栏目主要有文档和案例两部分
文档:D3系统性讲解文档
案例:D3的使用及各种案例验证积累
# D3相关网站及书籍,学习资料总结
# 官方API文档: https://github.com/d3/d3/wiki/
# 官方中文手册:https://github.com/d3/d3/wiki/API--中文手册
# D3 开发者Mike Bostock 的博客:http://bl.ocks.org/mbostock
介绍了很多D3 的编程技巧,讲解了部分API 的使用,还探讨了许多使用D3会遇到的问题的解决方案。
# D3 开发者Jason Davies 的个人网站:https://www.jasondavies.com/
包含很多在线示例。涉及一些API 的形象解释。扩展了D3 的地理投影。讲解了很多D3 的实现原理如贝塞尔曲线的动态演示等。还有一些像词云这样的实用插件。
# 文江博客-中文版API:https://www.wenjiangs.com/doc/d3-api
包含API手册和每个API 的讲解使用。
# SVG 在线教程:http://tutorials.jenkov.com/svg/index.html
讲解SVG 的基本功能,案例都可以在线演示。
# 2000 多个D3 在线案例汇总:http://christopheviau.com/d3list/gallery.html
可视化案例大都可以在线运行,并且已经按照类别组织好,可以通过关键词来筛选案例。
# D3交流社区:https://stackoverflow.com/questions/tagged/d3.js
D3交流社区,问题反馈及解答。
# mapshaper:http://mapshaper.org/
支持Shapefile,GeoJSON 和TopoJSON 文件的在线编辑和转换。
# 《数据可视化实战(使用D3 设计交互式图表)》
Scott Murray 著,李松峰译。这本书写得浅显易懂,是入门D3 的经典书籍。其中也有涉及 一些API 的简要介绍。
# 《D3.js In Action》
Elijah Meeks 著。涉及D3 数据可视化的方方面面,特别是数据可视化和D3.js 的原理,定 制组件,大数据可视化等内容很经典。内容详实丰富。
# 《Mastering D3.js》
Pablo Navarro 著。其中讲解了比较实用的地理可视化和实时数据可视化,包含部分API 的介绍。