Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从饼图的交叉筛选维度返回多个值_Javascript_D3.js_Crossfilter_Dc.js - Fatal编程技术网

Javascript 从饼图的交叉筛选维度返回多个值

Javascript 从饼图的交叉筛选维度返回多个值,javascript,d3.js,crossfilter,dc.js,Javascript,D3.js,Crossfilter,Dc.js,我正在使用dc.js来显示饼图。我看到的所有饼图示例都包含返回单个值的交叉筛选维度 var quarter = ndx.dimension(function (d) { var month = d.dd.getMonth(); if (month <= 3) return "Q1"; else if (month > 3 && mon

我正在使用dc.js来显示饼图。我看到的所有饼图示例都包含返回单个值的交叉筛选维度

var quarter = ndx.dimension(function (d) {
                var month = d.dd.getMonth();
                if (month <= 3)
                    return "Q1";
                else if (month > 3 && month <= 5)
                    return "Q2";
                else if (month > 5 && month <= 7)
                    return "Q3";
                else
                    return "Q4";
            });
            var quarterGroup = quarter.group().reduceSum(function (d) {
                return d.volume;
            });
但这不起作用,因为它将分割饼图以显示所有不同类型的arraylist,而不是按其内容显示


我已经研究这个问题有一段时间了,找不到解决办法。使用dc.js和crossfilter是否可以做到这一点?

不是专家,但我认为您需要在组中使用.reduce(),并创建自己的reduceAdd、reduceRemove和reduceInitial函数

.groupAll().reduce(reduceAdd, reduceRemove, reduceInitial).value();

就像解释的一样,只是它是饼图,不是条形图。

我知道这个问题已经有七年了。我一直在快速回顾最流行的未回答的交叉筛选问题,这是第4条

标记维度,或,在Crossfilter中实现,并在后续版本中修复了错误

声明维度时,传递可选的第二个参数
true
,并让dimension key函数返回一个数组(如问题所示)。每个记录的每个键都将计数一次


警告:由于行数不止一次,因此不要在任何地方(如a)使用这种维度,因为这些地方的值的总和预计将达到100%。

可能重复您是否找到了任何解决方案?此解决方案也是正确的,但该功能现在是内置的-请参阅我的答案。
.groupAll().reduce(reduceAdd, reduceRemove, reduceInitial).value();