我正在尝试了解如何将 crossfilter 与 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();
这似乎只返回第一个键的值? reduceSum() 和 groupAll() 也没有用。
var numberDisplayElem = dc.numberDisplay("#number-display-elem");
numberDisplayElem
.group(teams);
基本上只是试图获取总数来填充数字显示,然后是过滤值的单个数字返回,例如总帐单损失等。开始时遇到麻烦。 TIA。
最佳答案
一个普通的交叉过滤器组根据关键函数有多个 bin。
如果您想计算所有记录而不对它们进行装箱,请尝试使用 groupAll相反:
var numRecords = cf.groupAll();
numberDisplayElem
.group(numRecords)
.valueAccessor(x => x);
关于javascript - DC.js numberDisplay with crossfilter 获取总记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43126076/