附录 分分钟搞定交互式分析

该附录涵盖以下主题:

  • 了解Crossfilter.js库
  • 利用dc.js创建多维图表

至此你已经掌握了D3数据可视化的全部内容,并一起探索了各种相关话题和技术。那么如今,你可能会同意,即便在一个像D3这样强大的库的帮助下,创建可交互、精确、优美的数据可视化仍然是一件繁琐的事情。通常,需要花费数日乃至数周的时间来完成一个专业的数据可视化工程。当然,这还没有考虑后端所要耗费的精力。

如果你只是快速创建一个交互性分析,或者将一个成熟的可视化工程投入商业运营之前进行技术性验证,那么花费几周或几天时间是无法让人接受的,最好几分钟就能搞定。在本附录中,我们将介绍两个相关的JavaScript库,从而让你能够在短短几分钟内快速创建基于浏览器交互的多维数据可视化分析。

Crossfilter.js是由D3作者Mike Bostock创建的另外一个库,最初用来提高Square Register的分析能力。

Crossfilter是一个用于在浏览器端处理大量多元数据集的JavaScript库。Crossfilter支持极速的交互(<30ms),支持坐标轴视图,甚至能够处理包含百万级记录的数据集。

——Crossfilter维基百科(2013年8月)

换句话说,Crossfilter可以为大数据集和多元数据集生成多个数据维度。那么,什么是数据维度呢?一个数据维度可以认为是数据分组或数据分类的一种类型,每一个维度的数据元都代表了一个类别变量。这样解释仍然比较抽象,那么让我们来一起看一个例子,即如何通过Crossfilter将下面的JSON数据集变换为一个多维数据集。首先假设下面的数据描述了某一个酒吧的付款交易。

[  {"date": ...

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.