如何在 dc.js 中每个维度有多个图表?

How to have multiple graphs per dimension in dc.js?

假设以下数据集:

var data = [
    {
        "userId": "u1",
        "questionId": "q1",
        "answerId": "a1"
    },
    ...
];

我想绘制饼图列表。每个饼图对应一个问题,饼图就是该问题的答案。

现在,当有人点击饼图获得 select 一个答案时,它会更新剩余的饼图,其中包含也 select 编辑了该答案的用户。

基本上,用例是 "users who answer "a1" 到问题 "q1" 也回答了问题 "q2" 与馅饼给出的分布等

我不确定最佳的处理方式是什么。 我应该使用多个 crossfilter 实例吗?只用一个可行吗?我怎样才能实现这个过滤器?过滤器似乎适用于用户,但尺寸就是答案...

感谢您的帮助!

通常从 crossfilter 得到一个简单的答案意味着构建您的数据,使其成为您要计算的行的平面数组。这里要统计用户。

如果这是您的整个可视化效果,并且您可以重组数据,那么获得您想要的内容的最简单方法是每个用户一行:

[{"userId": "u1",
    "q1": "a1",
    "q2": "a2",
    ...
},
 {"userId": "u2",
    "q1": "a1",
    "q2": "a2", 
    ... 
}]

现在,只需在每个问题上键入维度,每个问题都有默认的 reduceCount 组,您就可以自动获得所需的内容。

尺寸将是这样的:

var dim = cf.dimension(function(d) { 
    return d.q1; 
});