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

标签 javascript dc.js crossfilter

假设以下数据集:

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

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

现在,当有人点击饼图选择答案时,它将更新剩余的饼图,其中包含也选择了该答案的用户。

基本上,用例是“对问题“q1”回答“a1”的用户也回答了问题“q2”,分布由饼图等给出。

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

感谢您的帮助!

最佳答案

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

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

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

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

尺寸如下:

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

关于javascript - 如何在 dc.js 中每个维度有多个图表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31686444/

相关文章:

javascript - 对 CrossFilter 过滤感到困惑

javascript - 交互式图表(由 dc.js 提供)无法正确相互更新

javascript - 如何在 lodash 的 map 函数中获取 Mongoose findById 响应?

javascript - Apache 2 : Access files within another directory than/var/www

dc.js - 使用下拉列表过滤交叉过滤器维度

javascript - D3.js/Dc.js 折线图中单线的不同颜色线段

javascript - 开始使用 d3.js,需要哪些文件?

javascript - 如何让所有带有类的文本框在 jquery 中有一个日期选择器?

javascript - 如何在 Chart.js 中重新格式化工具提示?

javascript - crossfilter.js 和 dc.js : Is there a limitation to number of dimensions and facts to be used?