crossfilter,dc.js计算维度中的唯一值

时间:2016-04-08 07:20:27

标签: dc.js crossfilter

我正在尝试创建一个条形图(交叉过滤器和dc js)来显示有多少人(独特的)参加了活动

[
{"Year: 2015" , "Name:Person1"},
{"Year: 2015" , "Name:Person2"},
{"Year: 2015" , "Name:Person3"},
{"Year: 2015" , "Name:Person1"},
{"Year: 2015" , "Name:Person1"},
{"Year: 2016" , "Name:Person4"},
{"Year: 2016" , "Name:Person4"},
{"Year: 2016" , "Name:Person1"},
]

我在X轴上绘制Year,在Y轴上绘制Count。现在我减少了第一年的数量

Year: 2015 Count:3 -> person 1,2,3
Year: 2016 Count:2  -> person 1,4

示例代码

yeardimension.group().reduceCount(function(d) { return d.year }) 

我想获得独特的价值和期望值

Year: 2015 Count:5
Year: 2016 Count:3

如何在交叉滤波器和直流js中实现这一目标?

1 个答案:

答案 0 :(得分:1)

您需要构建一个非常复杂的自定义减速器。这里有一个例子可以得到正确的想法,虽然它不会很快并且会因某些键而中断,因为并非所有JS字符串都是有效的属性名称:Crossfilter reduce :: find number of uniques

您可以使用Reductio's exception aggregation功能轻松构建这些Reducer的快速且强大的版本。或者你可能想要关注Universe,其目的是以不同的方式使这个变得容易,使用Reductio和Crossfilter。