我们开始需要什么?
本课程的目标受众及先修要求概述。
目标读者
本课程适合对 D3.js 和 JavaScript 完全零基础的初学者。其目标是让读者通过“动手实践”而非死记硬背的方式,逐步掌握数据可视化和图形开发的实际应用。完成本书学习后,读者应能自信地编写自己的代码,并为深入探索高级主题打下坚实基础。
先修知识
坦白说,D3 并不是绘制图表最简单的方法。
但这并不意味着它超出了具备基本计算机常识并愿意尝试的人的能力范围。记住,失败是你的朋友。只要从错误中吸取教训,一切都会顺利起来。
以下是一些推荐了解的内容(按重要性排序,但并非必需),其中任意一项或多项都能让你的学习过程更轻松一些:
- 超文本标记语言(HTML)
- JavaScript
- 层叠样式表(CSS)
- 网络服务器
## HTML HTML 是 **超文本标记语言** 的缩写。它是网页构成的基础。请记住,我们在这里使用 HTML 的唯一目的,是存放用于展示信息的代码。这将是一个 .html(或 .htm)文件,结构可以非常简单。不过别担心,稍后我们会看一些实例。

JavaScript
JavaScript 是一种“脚本语言”。它就是嵌入在 HTML 文件中的代码,负责驱动 D3 的各种功能。事实上,D3 就是一个 JavaScript 库,而 JavaScript 正是使用 D3 的原生语言。
了解一点 JavaScript 会非常有帮助,但说实话,我刚开始时也完全不了解。通过不断尝试和纠错,你也能逐渐理解其中的原理。
事实上,本书大部分内容都是围绕 D3 中的 JavaScript 部分提供示例和解释。
层叠样式表(CSS)
层叠样式表 是一种用于描述用标记语言编写的文档呈现方式的语言(也就是决定“外观与感觉”的语言)。大多数人简称其为“样式表”或“CSS”。CSS 的作用是通过为特定对象分配特定样式,使我们用 D3 绘制的组件呈现更加简洁统一。
CSS 的一个优点是,它是一种极其灵活且高效的手段,能让屏幕上所有元素的视觉风格保持一致。当我们需要修改某个元素的样式时,只需调整对应的 CSS 部分,整个图形的外观就会随之改变。

网络服务器
网络服务器有两种情况:如果你有访问权限,并知道如何放置文件以便通过浏览器访问,那你就已经处于有利位置了。如果还不确定,继续往下读。
什么是网络服务器?
网络服务器 可以让我们访问 HTML 文件,并提供支持这些文件在浏览器中正常显示的结构。
在本手册中,我描述的文件结构和布局方式适用于本地网络服务器,但同样适用于远程服务器。稍后在“获取 D3”部分,我会进一步说明我的文件组织方式。
在本课程中,我们将使用 Python 网络服务器。