- DC.js 教程
- DC.js - 主页
- DC.js - 简介
- DC.js - 安装
- DC.js - 概念
- 交叉过滤器简介
- D3.js 简介
- DC.js - 混合
- DC.js-baseMixin
- DC.js - capMixin
- DC.js - colorMixin
- DC.js - marginMixin
- DC.js -坐标GridMixin
- DC.js - 饼图
- DC.js - 折线图
- DC.js - 条形图
- DC.js - 综合图表
- DC.js - 系列图表
- DC.js - 散点图
- DC.js - 气泡图
- DC.js - 热图
- DC.js - 数据计数
- DC.js - 数据表
- DC.js - 数据网格
- DC.js - 图例
- DC.js - 仪表板工作示例
- DC.js 有用资源
- DC.js - 快速指南
- DC.js - 有用的资源
- DC.js - 讨论
DC.js - Crossfilter 简介
Crossfilter是一个多维数据集。它支持与包含一百万或更多记录的数据集进行极快的交互。
基本概念
Crossfilter 定义在 crossfilter 命名空间下。它使用语义版本控制。考虑一个加载了下面定义的水果集合的交叉过滤器对象 -
var fruits = crossfilter ([ { name: “Apple”, type: “fruit”, count: 20 }, { name: “Orange”, type: "fruit”, count: 10 }, { name: “Grapes”, type: “fruit”, count: 50 }, { name: “Mango”, type: “fruit”, count: 40 } ]);
如果我们需要执行一组中的总记录,我们可以使用以下函数 -
var count = fruits.groupAll().reduceCount().value();
如果我们想按特定类型过滤 -
var filtering = fruits.dimension(function(d) { return d.type; }); filtering.filter(“Grapes”)
同样,我们可以使用Crossfilter进行分组。为此,我们可以使用以下函数 -
var grouping = filtering.group().reduceCount(); var first = grouping.top(2);
因此,Crossfilter 的速度非常快。如果您想在应用过滤器时重新计算组,它将增量计算。交叉过滤器的尺寸非常昂贵。
交叉过滤API
让我们详细了解一下著名的 Crossfilter API。
crossfilter([records]) - 它用于构造一个新的交叉过滤器。如果指定了记录,则它同时添加指定的记录。记录可以是任何 JavaScript 对象或基元数组。
crossfilter.add(records) - 将指定的记录添加到交叉过滤器中。
crossfilter.remove() - 从交叉过滤器中删除与当前过滤器匹配的所有记录。
crossfilter.size() - 返回交叉过滤器中的记录数。
crossfilter.groupAll() - 它是一个用于对所有记录进行分组并减少到单个值的函数。
crossfilter.dimension(value) - 用于使用指定的值访问器函数构造新维度。
Dimension.filter(value) - 用于过滤记录以获取维度的匹配值,并返回维度。
Dimension.filterRange(range) - 过滤大于或等于 range[0] 且小于 range[1] 的维度值的记录。
Dimension.filterAll() - 清除该维度上的所有过滤器。
Dimension.top(k) - 用于根据该维度的自然顺序返回包含前 k 条记录的新数组。
Dimension.bottom(k) - 用于根据该维度的自然顺序返回包含底部 k 条记录的新数组。
Dimension.dispose() - 用于从交叉过滤器中删除维度。
在下一章中,我们将简要了解 D3.js。