Javascript 不过滤的交叉过滤器(dc.js)

Javascript 不过滤的交叉过滤器(dc.js),javascript,d3.js,pie-chart,dc.js,crossfilter,Javascript,D3.js,Pie Chart,Dc.js,Crossfilter,我试图在交叉过滤中使用过滤器,但没有 以下是最相关的代码: var userDimension = data.dimension(function(d) {return d.user;}).filter(['John', 'Paul']); var totalSalesByUser = userDimension.group(); var pieChartUserSales = dc.pieChart("#pie-chart-sales-by-user"); pieChartUserSales

我试图在交叉过滤中使用过滤器,但没有

以下是最相关的代码:

var userDimension = data.dimension(function(d) {return d.user;}).filter(['John', 'Paul']);
var totalSalesByUser = userDimension.group();
var pieChartUserSales = dc.pieChart("#pie-chart-sales-by-user");
pieChartUserSales
  .width(150).height(150)
  .dimension(userDimension)
  .group(totalSalesByUser); 

dc.renderAll();

饼图在有过滤器和没有过滤器的情况下看起来是一样的,但我要寻找的效果是将其缩小到John或Paul是用户的项目。

因此,交叉过滤器不会将过滤器应用到您放置过滤器的维度。它适用于其他一切


经过长时间的思考,这是有道理的。

交叉过滤器过滤器不适用于与过滤器定义在同一维度上的组。创建第二个维度并对其进行过滤


下面是一个更新的示例。还要注意的是,您定义的过滤器并没有完成您可能希望它完成的任务,因此我将其更改为只过滤Paul和John的函数:

是的。不直观,但这正是在协调视图上进行过滤的正确设计决策。@Jeffrey,你能详细解释一下吗?在我发表评论后,我看了看自己的图表(其中包含交叉过滤对象)。它确实有一定的意义,例如,我有一个图表a显示了2017年每个月的图书销售数量(使用时间维度,然后使用组),第二个图表B显示了不同图书的总销售额。假设现在我想知道某个月之间的总销售额,然后根据时间维度进行过滤。B将相应地更改,但A不一定需要更改(因为所有信息都已经存在)。但是,如果我需要使图表更清晰,那么我将创建一个时间维度副本进行过滤。感谢更新的jsbin,这很好地解决了我的问题。