按维度筛选的 dataCount 图
dataCount graph filtered by a dimension
我有一个各种活动的参与者列表作为数据源
eventid,participant_name
42,xavier
42,gordon
11,john
...
默认情况下,dataCount 会说他们是 3 个参与者,我需要显示事件数(所以 2)
我尝试创建维度
var event = ndx.dimension(function(d) {
return d.eventid;
})
但无法在 dataCount
中使用它
dc.dataCount(".dc-data-count")
//.dimension(ndx) //working, but counts participants
.dimension(event) // not working
我该怎么做?
在我看来,您似乎正在尝试使用数据计数小部件来计算组箱而不是行。
数据计数小部件仅设计用于计算记录,而不是键或组或其他任何东西。但是您可以伪造对象,因为小部件仅在维度上调用 .size()
,而在组上仅调用 .value()
。
但是放在那里呢?该值实际上有点简单,因为它是具有非零值的组的计数:
var eventGroup = event.group();
widget.group({value: function() {
return eventGroup.all().filter(function(kv) { return kv.value>0; }).length;
})
但是大小是多少?那么,根据 crossfilter 文档,group.size 实际上 returns 我们想要的,"the number of distinct values in the group, independent of any filters; the cardinality."
好奇怪,好像
widget.dimension(eventGroup)
应该可以。当然,我还没有测试过这些,所以如果这不起作用,请发表评论!
(唉,我不会为 dc.js 中的真实数据模型做些什么。令人困惑的是,这个小部件的 "dimension" 实际上是 crossfilter 对象。另一个地方是一种奇怪的方法经济,就像维度的组,它只是一个函数。)
我有一个各种活动的参与者列表作为数据源
eventid,participant_name
42,xavier
42,gordon
11,john
... 默认情况下,dataCount 会说他们是 3 个参与者,我需要显示事件数(所以 2)
我尝试创建维度
var event = ndx.dimension(function(d) {
return d.eventid;
})
但无法在 dataCount
中使用它dc.dataCount(".dc-data-count")
//.dimension(ndx) //working, but counts participants
.dimension(event) // not working
我该怎么做?
在我看来,您似乎正在尝试使用数据计数小部件来计算组箱而不是行。
数据计数小部件仅设计用于计算记录,而不是键或组或其他任何东西。但是您可以伪造对象,因为小部件仅在维度上调用 .size()
,而在组上仅调用 .value()
。
但是放在那里呢?该值实际上有点简单,因为它是具有非零值的组的计数:
var eventGroup = event.group();
widget.group({value: function() {
return eventGroup.all().filter(function(kv) { return kv.value>0; }).length;
})
但是大小是多少?那么,根据 crossfilter 文档,group.size 实际上 returns 我们想要的,"the number of distinct values in the group, independent of any filters; the cardinality."
好奇怪,好像
widget.dimension(eventGroup)
应该可以。当然,我还没有测试过这些,所以如果这不起作用,请发表评论!
(唉,我不会为 dc.js 中的真实数据模型做些什么。令人困惑的是,这个小部件的 "dimension" 实际上是 crossfilter 对象。另一个地方是一种奇怪的方法经济,就像维度的组,它只是一个函数。)