DC.js numberDisplay with crossfilter 获取总记录数

DC.js numberDisplay with crossfilter get total records

我正在尝试了解如何将交叉过滤器与 dc.js 一起使用。我有以下数据,我想首先用数据中的对象总数填充一个 numberDisplay。然后再填充票据损失的记录数。

var data = [
  {
    "team": "bills",
    "location": "home",
    "outcome": "loss"
  },
  {
    "team": "dolphins",
    "location": "away",
    "outcome": "loss"
  },
  {
    "team": "jets",
    "location": "home",
    "outcome": "loss"
  },
  {
    "team": "jets",
    "location": "home",
    "outcome": "win"
  },
  {
    "team": "dolphins",
    "location": "home",
    "outcome": "loss"
  },
  {
    "team": "dolphins",
    "location": "away",
    "outcome": "win"
  },
  {
    "team": "dolphins",
    "location": "home",
    "outcome": "win"
  },
  {
    "team": "dolphins",
    "location": "away",
    "outcome": "loss"
  }
]

DC.JS numberDisplay 需要一组,但我一直无法弄清楚如何简单地计算记录数。

var cf = crossfilter(data);
var team = cf.dimension(function(d) { return d.team })
var teams = team.group().reduceCount();

这似乎只是 return 第一个键的值? reduceSum() 和 groupAll() 也没有用。

var numberDisplayElem = dc.numberDisplay("#number-display-elem");
    numberDisplayElem
        .group(teams);

基本上只是试图获取总数来填充 numberDisplay,然后是过滤值的单个 numberBack,例如总帐单损失等。开始时遇到了麻烦。 TIA.

一个普通的crossfilter组有多个基于key函数的bin。

如果您想计算所有记录而不对它们进行分箱,请尝试使用 groupAll 代替:

var numRecords = cf.groupAll();
numberDisplayElem
  .group(numRecords)
  .valueAccessor(x => x);