官方介绍
D3(或 D3.js)是一个免费、开源的 JavaScript 库,用于数据可视化。它基于 Web 标准的低级方法提供了无与伦比的灵活性,可以创作动态、数据驱动的图形。十多年来,D3 推动了突破性且获奖的视觉化,成为更高级图表库的基础构建模块,并促进了全球范围内充满活力的数据从业者社区。
ai介绍
# D3 是什么?小白也能看懂的介绍
如果你刚开始接触前端数据可视化,可能会经常看到一个名字:D3。
很多人会说 D3 很强大,但对新手来说,这句话其实有点抽象。简单理解,D3 就是一个 **帮你在网页上把数据画成图形的工具箱**。
它主要用来做数据可视化。
## D3 能做什么?
假设你有一组数据:
```js
[
{ name: "A", score: 80 },
{ name: "B", score: 60 },
{ name: "C", score: 95 }
]
D3 可以帮你把这些数据变成网页上的图形:
80变成一根比较长的柱子60变成一根短一点的柱子95变成最长的柱子
除了简单的柱状图,它还可以做很多更复杂的东西,比如:
- 折线图
- 饼图
- 散点图
- 地图
- 树状图
- 关系网络图
- 知识图谱
- 动态交互图表
- 可拖拽、可缩放、可点击的数据图形
比如在医学教育场景里,如果你想展示“疾病、症状、药物、检查项目”之间的关系,D3 就可以用来画一个可以拖动、缩放、点击查看详情的知识图谱。
D3 和普通图表库有什么区别?
很多人会把 D3 和 ECharts、Chart.js 这类图表库放在一起比较。
它们确实都能做图表,但定位不太一样。
ECharts 这类工具更像是“成品图表库”。你告诉它:
我要一个柱状图,数据是这些。
它就能很快帮你画出来。
D3 更像是“画图工具箱”。它不会只给你固定模板,而是给你很多基础能力:
- 怎么把数字变成长度
- 怎么把数据变成圆点
- 怎么生成坐标轴
- 怎么画线
- 怎么做动画
- 怎么做拖拽
- 怎么做缩放
- 怎么让节点自动排布
所以 D3 的特点是:更灵活,但学习成本也更高。
一个简单类比
如果只是想快速吃饭:
- ECharts 像点外卖,快、简单、选择有限。
- D3 像给你锅、刀、食材和调料,你可以做很多不同的菜,但需要会一点厨艺。
所以,如果你只是想快速做一个普通柱状图、折线图,用 ECharts、Chart.js 可能更省事。
但如果你想做一个高度定制的可视化,比如知识图谱、复杂交互图、特殊的数据展示界面,D3 就很适合。
D3 适合哪些场景?
D3 比较适合这些需求:
- 想做自定义图表
- 想做复杂交互
- 想做关系网络图
- 想做知识图谱
- 想做地图可视化
- 想做可拖拽、可缩放、可点击的数据图
- 想完全控制图形长什么样、怎么动、怎么交互
不太适合这些情况:
- 只想快速画普通图表
- 不想写太多前端代码
- 团队没有图形和 SVG 基础
- 用配置式图表库已经能满足需求
一句话总结
D3 是一个用于网页数据可视化的工具箱。
它可以把数据变成图形、动画和交互。普通图表库更适合快速出图,而 D3 更适合做高度定制、复杂交互的数据可视化。
对小白来说,可以先记住这句话:
D3 就是让程序员在网页上自由画数据图的工具。
官网
What is D3? | D3 by Observable: What is D3? | D3 by Observable