第3章 与数据同行
本章涵盖以下内容:
- 将数组绑定为数据
- 将对象字面量绑定为数据
- 将函数绑定为数据
- 数组的处理
- 数据的过滤
- 基于数据的图形排序
- 从服务器加载数据
- 利用队列异步加载数据
3.1 简介
在本章中,我们将探索数据可视化工程中最关键的问题——如何将数据用程序和图形进行表示。在进入这个主题之前,有必要澄清何为数据可视化。首先,要理解数据和信息有什么差别。
数据是纯粹的事实。“纯粹”意味着这种事实没有经过任何处理,其意义也没有得到揭示。而信息是数据处理的结果,它揭示了数据的意义。
——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.