第3章 与数据同行

本章涵盖以下内容:

  • 将数组绑定为数据
  • 将对象字面量绑定为数据
  • 将函数绑定为数据
  • 数组的处理
  • 数据的过滤
  • 基于数据的图形排序
  • 从服务器加载数据
  • 利用队列异步加载数据

在本章中,我们将探索数据可视化工程中最关键的问题——如何将数据用程序和图形进行表示。在进入这个主题之前,有必要澄清何为数据可视化。首先,要理解数据和信息有什么差别。

数据是纯粹的事实。“纯粹”意味着这种事实没有经过任何处理,其意义也没有得到揭示。而信息是数据处理的结果,它揭示了数据的意义。

——P. Rob、S. Morris与C. Coronel(2009年)

以上就是“数据”和“信息”在数字世界的传统定义。然而相比上述概念,数据可视化(data visualization)的含义更加丰富,因为对数据可视化而言,信息不仅是数据处理的结果,而且是事实的可视化表示。就像Manuel Lima在他的《信息可视化宣言》(Information Visualization Manifesto)中提到的那样,在物质世界中,设计的形式是取决于其功能的。

同一个数据集可以表示为多种可视化形式,并且每一种形式都有恰当的含义。从某种意义上说,可视化更注重人对数据内在观察的展示。Card、McKinlay和Shneidermand对此持有更加激进的观点,他们认为信息可视化是:

在计算机辅助下,用交互的、可视化的方式对抽象数据进行展示,以达到对数据认知的放大。

——S. Card、J. McKinlay与B. Shneiderman(1999年)

在接下来的几节里,我们将展示D3是如何将数据和图形领域联系起来的。这也是我们借助于数据创造认知放大器的第一步。

将每一个数据与相应图形关联起来是一项复杂而枯燥的任务。例如,为数据集合中的每一个数据绘制一个长条,当集合中的数据变化时更新相应图形的长度,以及当某些数据不存在时删除相应的图形。这正是D3的特点之一,因为它专门针对数据和图形的关联处理进行了精巧的设计。D3将数据和图形的联系定义为一种模式,这称为“进入—更新—退出”(enter-update-exit)模式。这种模式与我们大多数开发人员熟悉的命令式模式有非常大的不同。但是为了有效地使用D3,我们必须理解这种模式。因此在本节,我们将详细地解释与这种模式相关的概念。首先,来看一张描述数据和图形关系的示意图(如图3-1所示)。 ...

Get D3 4.x数据可视化实战手册(第2版) now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.