D3——用来画图的一系列工具包

官方介绍

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