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

标签 javascript jquery dc.js crossfilter

我有以下数据及其计数的条形图。这是jsfiddle 。我想过滤维度,以便在条形图中我只有 Alyssa 和 Bob。我尝试过使用 .filter() 创建过滤变量的不同变体函数并直接过滤图表。主要问题似乎是 XDimension.group().reduceCount因为显然“组方法只考虑满足除此维度过滤器之外的每个过滤器的记录。”我搞不清楚了。感谢帮助。

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 });

当我打印出“已过滤”时,我发现维度已正确过滤。然而,当绘制图表时,“Joe”仍然在数据集中。

如果我找到更好的解决方案,我会回复..

关于javascript - 如何使用 crossfilter 和 dc.js 过滤、分组和绘制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25124277/

相关文章:

javascript - 将参数传递给事件监听器不起作用?

c# - 通过上传文件进行自定义客户端验证

javascript - 更改ajax表单提交值和onClick状态

javascript - Heatmap DC.js - 如何手动过滤多个项目

javascript - Dc.js 刷机滞后。与 dc.js 版本 1.3 不同,过滤多次

javascript - 在 dc.js 饼图中旋转饼标签

javascript - 潜在危险的Request.QueryString——如何在不关闭安全功能的情况下预防

javascript - 尝试将外部 JS 和 CSS 文件添加到我的 Rails 应用程序中

javascript - 如何创建递归函数并维护局部变量的历史记录?

javascript - jQuery backgroundPosition 不接受多个值?