Javascript 如何使用crossfilter和dc.js过滤、分组和打印数据

Javascript 如何使用crossfilter和dc.js过滤、分组和打印数据,javascript,jquery,dc.js,crossfilter,Javascript,Jquery,Dc.js,Crossfilter,我有以下数据和计数的条形图。这是你的电话号码。我想过滤维度,这样在条形图中我只有Alyssa和Bob。我尝试过使用.filter()函数创建过滤变量和直接过滤图表的不同方法。主要问题似乎是 xEng.x(.CubEngUnter)/CudieNo.< /Cult>,因为显然“组方法只考虑满足除维度过滤器之外的每个过滤器的记录”。谢谢你的帮助 var data = [{ Owner: "Alyssa", ID: "A" }, { Owner: "Alyssa", I

我有以下数据和计数的条形图。这是你的电话号码。我想过滤维度,这样在条形图中我只有Alyssa和Bob。我尝试过使用
.filter()
函数创建过滤变量和直接过滤图表的不同方法。主要问题似乎是<代码> xEng.x(.CubEngUnter)/CudieNo.< /Cult>,因为显然“组方法只考虑满足除维度过滤器之外的每个过滤器的记录”。谢谢你的帮助

var data = [{
    Owner: "Alyssa",
    ID: "A"
}, {
    Owner: "Alyssa",
    ID: "A"
}, {
    Owner: "Alyssa",
    ID: "A"
}, {
    Owner: "Alyssa",
    ID: "A"
}, {
    Owner: "Alyssa",
    ID: "B"
}, {
    Owner: "Bob",
    ID: "A"
}, {
    Owner: "Bob",
    ID: "A"
}, {
    Owner: "Bob",
    ID: "C"
}, {
    Owner: "Bob",
    ID: "C"
}, {
    Owner: "Bob",
    ID: "C"
}, {
    Owner: "Bob",
    ID: "C"
}, {
    Owner: "Bob",
    ID: "C"
}, {
    Owner: "Bob",
    ID: "D"
}, {
    Owner: "Joe",
    ID: "A"
}, {
    Owner: "Joe",
    ID: "A"
}, {
    Owner: "Joe",
    ID: "D"
}, {
    Owner: "Joe",
    ID: "D"
}, {
    Owner: "Joe",
    ID: "E"
}];

var ndx = crossfilter(data);


var XDimension = ndx.dimension(function (d) {
    return d.Owner;
});
var YDimension = XDimension.group().reduceCount(function (d) {
    return d.Owner;
});
dc.barChart("#Chart")
    .width(480).height(300)
    .dimension(XDimension)
    .group(YDimension)
    .centerBar(true)
    .gap(56)
    .x(d3.scale.ordinal().domain(XDimension))
    .xUnits(dc.units.ordinal)
    .xAxisLabel("Market Developer")
    .yAxisLabel("Unique Counts")
    .elasticY(true)
    .xAxis().tickFormat(function (v) {
    return v;
});
dc.renderAll();

是否可以在将数据添加到交叉过滤器之前对其进行过滤

data = data.filter(function (d) { return d.Owner !== "Joe"; });
var ndx = crossfilter(data);
我目前正在处理一个类似的问题,这是一个临时解决方案。我试着像这样过滤维度:

var filtered = XDimension.filter(function (d) { return d !== "Joe"; });
var YDimension = filtered.group().reduceCount(function (d) { return d.Owner });
当我打印“filtered”时,我看到维度已正确过滤。然而,绘制图表时,“Joe”仍在数据集中


如果我找到更好的解决方案,我会发回的。

事实上,我昨天就知道了。我使用了非常相似的方法。你在正确的轨道上。我会写我的解决方案,只要我有空闲时间。简单地说,使
XDimesnion=ndx.dimension(函数(d){if(d.Owner==“Joe”| | d.Owner==“Bob”){return d.Owner;}}})
。这就是你要做的。然后,你可以正常使用组功能,它将工作。