4

我正在尝试使用crossfilter javascript 库(与D3.js结合使用)对 json 数据进行分组和过滤。

我的 json 数据有以下字段: week_date, category, team_name, title, subtitle

我已经能够成功地对所有记录进行分组以生成 YTD 总数,使用如下所示:

var dimension = data.dimension(function(d) { return d[target]; });
var dimensionGrouped = dimension.group().all();

要么target要么。category_team_name

除了保留 YTD 总数之外,我还想显示给定范围的总数。例如,用户选择的一周(即 10 月 1 日至 5 日)。

如何创建一个过滤组以返回给定日期范围的总数?使用我的 week_date 字段。

4

1 回答 1

4

好吧,经过一些肤浅的研究,包括浏览 crossfilter 的问题列表,我得出的结论是,crossfilter 目前不支持对多个字段进行分组。

我可以通过使用数据的过滤副本来解决这个问题,例如:

// YTD rows
var crossfilterData = crossfilter(data);
var ytdDimension = crossfilterData.dimension(function(d) { return d[target]; });
var ytdDimensionGrouped = ytdDimension.group().all();
ytdDimensionGrouped.forEach(function (item) {
    // ...
});

// Ranged rows
var filteredData = data.filter(function (d) {
    return d.week_date >= filter[0] && d.week_date <= filter[1];
});
crossfilterData = crossfilter(filteredData);
var rangeDimension = crossfilterData.dimension(function(d) { return d[target]; });
var rangeDimensionGrouped = rangeDimension.group().all();
rangeDimensionGrouped.forEach(function (item) {
    // ...
});
于 2012-10-15T20:33:34.460 回答