dc.js - 按维度筛选的 dataCount 图

标签 dc.js

我有一个各种事件的参与者列表作为数据源

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实际上返回我们想要的,“组中不同值的数量,独立于任何过滤器;基数。”

很奇怪,好像是

widget.dimension(eventGroup)

应该可以。当然,我还没有测试过这些,所以如果这不起作用请发表评论!

(唉,我不会为 dc.js 中的真实数据模型做些什么。令人困惑的是,这个小部件的“维度”实际上是 crossfilter 对象。另一个地方有一种奇怪的经济方法的集合,例如维度的组,它只是一个函数。)

关于dc.js - 按维度筛选的 dataCount 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30099139/

相关文章:

javascript - 8k+ 项目的 dc.js lineChart 性能问题

javascript - 从下拉列表中选择选项时如何更改 View 数据,而无需刷新页面?

javascript - dc.js 重置不会影响 mouseZoomable

javascript - 如何使用 crossfilter 和 dc.js 过滤、分组和绘制数据

javascript - 我如何从 dc.js 行图表中删除空条,每当维度为 null 或空时,行图表上会出现一个空条

javascript - dc.js 气泡图,沿 x 轴时间线绘制气泡

javascript - dc.js Vue 渲染图表不正确

dc.js - 如何使用序数轴更改刻度线的文本

javascript - 将数据从 dc.js dataTable 导出到 CSV

javascript - DC.js 等值线 map CSS 与颜色冲突,没有 map 显示。如何关闭填充:none?