我是crossfilter.js的新手。每当我使用范围选择器时,我会在我的过滤范围之外的条形图上得到奇怪的块状突出显示区域。我无法弄清楚我做错了什么。
如何防止这个块状部分在我的范围之外突出显示?
d3.csv("mydata.csv", function(data) {
data.forEach(function(d) {
d.conf = d3.round(+d.Conf,1);
console.log(d.conf);
});
var facts = crossfilter(data); // Put data into crossfilter
var confDim = facts.dimension(function (d) { return d.conf;}); // conf # filter
var confTotal = confDim.group().reduceCount(function (d) { return d.conf;});
var confChart = dc.barChart("#conf-chart");
confChart
.width(500).height(200)
.dimension(confDim)
.group(confTotal,"Confidence Number")
.x(d3.scale.linear().domain([0,5]).range([10,400]))
.yAxisLabel("Number of data points")
.brushOn(true);
dc.renderAll();
});
答案 0 :(得分:0)
您评论为过滤器的这一行实际上只是完整地设置维度:
var confDim = facts.dimension(function (d) { return d.conf;}); // conf # filter
您需要使用其中一个过滤器功能定义过滤器。请参阅文档here。
请仔细阅读dimension.group的文档,因为它包含一个问题,即不会应用分组维度上的过滤器。要解决此问题,您可能需要实际定义两个相同的维度,并使用一个用于过滤,另一个用于分组。