前言

前言

本书为非程序员介绍数据可视化编程。如果你是一名掌握了可视化技能的艺术家或平面设计师,但没有接触过数据和代码,本书就很适合你。如果你是一名经常要处理大量数据的记者或研究员,但没有接触过可视化和代码,那么本书同样很适合你。

本书介绍 JavaScript 库 D3,它可以把数据加载到网页中并根据这些数据生成可视化图形。你的编程经验可能很少甚至为零,也可能你写过程序,还听说过关于 JavaScript 的各种差评,但 D3 和数据可视化让你第一次接触到 JavaScript。没错,JavaScript 是有些古怪,但没有你听说的那么糟糕,一切都还好。请坐,少安毋躁。

本书源于我在个人网站上发布的一系列教程。当时(2012 年 1 月)面向初学者的 D3 学习资料非常少,我网站每天的访问量很快就上千了。这足以证明人们对这个领域(尤其是 D3)的兴趣正在与日俱增。于是,我把这些教程整理成了本书的第 1 版(英文版出版于 2013 年 3 月)。从那时起,D3 社区迅猛发展。行业对 D3 技能的需求大增,Google Group 的 D3 讨论组被大量招聘广告所占据,因此早期的 D3 狂热爱好者 Lynn Cherny 创建了新的讨论组专门用来招聘和求职。没错,只要拥有 D3 开发经验,你马上就能找到工作。

本书第 1 版介绍了 D3 的 3.x 版本。2016 年 6 月,D3 发布了 4.0 版本。新版本完全重写,保留了使 D3 强大且被广泛接受的核心概念,同时做了大量其他改动。尽管这些改动都是为了提供更好的开发体验(耶!进步啦!),但 3.x 版本的代码在 4.x 版本下运行会出错。因此本书第 2 版更新了大量内容,添加了许多新的示例,指出了需要避免的误区,并从多年使用和教授 D3 的经验中总结了大量实用技巧。

虽然这一版更新了很多内容,但单单一本书不可能涵盖所有数据可视化技术。数据可视化天生就是一个令人好奇的跨学科领域。JavaScript 编程只是你需要掌握的技能之一。好在市面上有很多其他图书可以选择,它们都可以作为本书的补充。请参看附录 C 了解推荐书目。

第 2 版新增内容

尽管 D3 是一个不断进化的工具,但它的所有核心功能都没变。D3 从未停止发展,这主要归功于 Mike Bostock 与不断发展壮大的 D3 用户社区所做的贡献。因此你要学习大量新的函数。我完善并扩展了每一章内容,以便涵盖对初学者最有用的知识点。

第 2 版主要更新内容如下。

  • 深入介绍非线性比例尺(如平方根和序数比例尺)与时间比例尺。
  • 新增一章,讲解用 SVG 路径绘制折线图和区域图。
  • 新增一章有关选集的内容,介绍用选集工具高效地根据数据值筛选元素。
  • 新增“项目实战”一章,从零开始用真实数据创建一个可视化项目。
  • 新增附录 A,介绍多个能启发灵感的案例研究,由 7 位设计高手讲述各自 D3 项目背后的创作流程。
  • 新增附录 B,总结 D3 4.0 版本的新特性。
  • 附录 C 增加了一些内容,指导读者在遇到难点时怎样以及到哪里寻求帮助。
  • 新增附录 D,介绍代码共享。
  • 新增附录 E,列出常用函数。

此外,所有代码示例都更新到了 D3 4.x 版本。全书共有约 130 个代码示例,其中 40 多个是第 2 版新增的。请查看第 1 章的相关说明,下载和本书这一版配套的示例文件。

D3 4.x 版本有一项新特性:HTML canvas 元素像 SVG 一样简单,几乎能够渲染任何内容。但本书不会介绍该特性。我选择只关注 SVG 渲染,这也是目前为止 D3 最普遍的使用场景。使用 canvas 会有许多机遇和挑战,本书不予讨论。关于这个主题,我推荐 Lars Verspohl 的完美教程“D3 and Canvas in 3 steps”。如果你已经熟悉 D3,这篇文章会让你更好地理解 D3。

最后,第 2 版比第 1 版多了 100 多页,按每页来算会更加超值。(我为你省钱了哟!)

本书约定

本书使用以下排版约定。

  • 黑体

    表示新术语或重点强调的内容。
     

  • 等宽字体(constant width

    表示程序片段,以及正文中出现的变量、函数名、数据类型、环境变量、语句和关键字等。
     

  • 等宽粗体(constant width bold

    表示应该由用户输入的命令或其他文本。
     

  • 等宽斜体(constant width italic

    表示应该由用户输入的值或根据上下文确定的值替换的文本。

 此图标表示一般说明。

 此图标表示提示或建议。

 此图标表示警告。

辅助栏

这是辅助栏的一个示例。

O'Reilly 在线学习平台(O'Reilly Online Learning)

近 40 年来,O'Reilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。

我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。O'Reilly 的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及 O'Reilly 和 200 多家其他出版商提供的大量文本和视频资源。有关的更多信息,请访问 http://oreilly.com

联系我们

请把对本书的评价和问题发给出版社。

美国:

  O'Reilly Media, Inc.

  1005 Gravenstein Highway North

  Sebastopol, CA 95472

中国:

  北京市西城区西直门南大街 2 号成铭大厦 C 座 807 室(100035)

  奥莱利技术咨询(北京)有限公司

我们为本书准备了专属网页,上面列出了勘误、示例以及其他信息。网页地址是 http://shop.oreilly.com/product/0636920037316.do1

1读者可到 ituring.cn/book/2062 查看和提交本书中文版勘误,并下载书中图片的彩色版本。——编者注

对本书进行评论或提技术性问题,请发送电子邮件到 bookquestions@oreilly.com

要了解更多 O'Reilly 图书、培训课程、会议和新闻的信息,请访问我们的网站:http://www.oreilly.com

我们的 Facebook 地址:http://facebook.com/oreilly

我们的 Twitter 地址:http://twitter.com/oreillymedia

我们的 Youtube 地址:http://www.youtube.com/oreillymedia

致谢

对于我在第 1 版中已经致谢过的各位:我已经感谢过你们一次啦!你们还要我怎样呢?

好吧,开玩笑啦。这次我仍然要谢谢你们,尽管只能一带而过,毕竟没有第 1 版也就没有第 2 版的诞生,而你们都是其中必不可少的一部分。谢谢你们:Nora、Rosten、Joe、Jen、Sha、Casey、Dan、Joshua、Noah、Jan、Meghan、Mike、Jen(再谢一次)、Anna、Daisy、Mike(再谢一次)、Jérôme、Lynn、Jason、Jeff、Santiago、Kim、Moritz、Jan Willem。(总算谢完了!)

如果说第 2 版在某些方面有所提升(实际上真的有),那要感谢 Shirley Wu 通读了第 1 版,并给出了许多很有价值的改进意见。另外,勇敢的 Melissa Lewis 和 Jane Pong 负责这次的技术审校。你们的工作给了我很多启发。参考了你们详细的批注后,本书更加完善,可读性也更高了。

我从内心深处感谢 Jan Willem Tulp、Anna Powell-Smith、Victor Powell、Lewis Lehe、Lena Groeger、Susie Lu、Zan Armstrong、Shirley Wu、Nadieh Bremer(排名按书中出现顺序)。谢谢你们接受我的采访,为附录 A 的案例研究贡献了时间、智慧以及图片素材。

那些为本书示例提供数据支持的科研人员,我对他们的感谢难以言表。感谢 NOAA/ESRL2 的 Pieter Tans 博士和斯克里普斯海洋研究所的 Ralph Keeling 博士,第 11 章用了他们的莫纳罗亚山 3 二氧化碳观测数据。还要感谢美国能源部阿贡国家实验室的 Yan(Joann)Zhou,第 13 章和第 15 章用了他的电动车辆数据。

2NOAA 是美国国家海洋大气管理局,ESRL 是地球系统研究实验室,后者是前者的下属部门。——译者注

3夏威夷的一座活火山。——译者注

特别感谢 Jeff Weiss 手工校对并修正了书中的部分内容,还有 Michael Neutze 为第 2 版的早期发行版指出了一些问题。感谢 Michael 还有另一个原因,他到机场接我时带了一张有海报那么大的本书全彩封面(这是真事)。

Meg Foley,十分感谢你作为第 2 版的编辑,从开始到结束一直守护着这个项目,尽管我时不时会拖稿,哈哈(总会有些个人原因的呀)。

当然,我要特别感谢 Mike Bostock,当初是他开发了 D3。如果没有这个精美的程序,以及 Mike 不断鼓舞大家分享自己的作品,数据可视化从业者的社区就不会像今天这样热情洋溢、活力四射。

同时还要感谢许多读者报告了第 1 版的勘误信息,并且提供了大量改进建议。我希望本书这一版能更加清晰易懂。你们热情的评论、邮件还有推文也非常棒。

最后,我要感谢诸位亲爱的读者。我希望我的努力能让这本新书值得你们花时间阅读。

电子书

扫描如下二维码,即可购买本书中文版电子版。

{%}

目录

  • 版权声明
  • O'Reilly Media, Inc. 介绍
  • 本书赞誉
  • 前言
  • 第 1 章 引言
  • 第 2 章 D3 简介
  • 第 3 章 技术基础
  • 第 4 章 安装D3
  • 第 5 章 数据
  • 第 6 章 用数据绘图
  • 第 7 章 比例尺
  • 第 8 章 数轴
  • 第 9 章 更新、过渡和动画
  • 第 10 章 交互性
  • 第 11 章 使用路径
  • 第 12 章 选集
  • 第 13 章 布局
  • 第 14 章 导出文件
  • 第 15 章 项目实战
  • 附录 A 案例研究
  • 附录 B 4.0版本新增特性
  • 附录 C 进阶学习
  • 附录 D 分享代码
  • 附录 E 速查手册
  • 作者简介
  • 封面说明