D3.js DC.js-选择菜单作为复合图表的过滤器
我的数据集类似于 我用复合折线图来表示这些数据 我正在使用selectMenu筛选“BW”和“NS”记录。但当我使用selectmenu时,复合图表保持不变 我将数据拆分为两个单独的文件(一个带有“BW”记录,另一个带有“NS”记录),以尝试实现中提供的数据选择功能。那也不行 最后,我想通过带或不带选择菜单的“BW”和“NS”记录过滤多个图表(复合、系列和气泡)D3.js DC.js-选择菜单作为复合图表的过滤器,d3.js,dc.js,composite,jquery-ui-selectmenu,D3.js,Dc.js,Composite,Jquery Ui Selectmenu,我的数据集类似于 我用复合折线图来表示这些数据 我正在使用selectMenu筛选“BW”和“NS”记录。但当我使用selectmenu时,复合图表保持不变 我将数据拆分为两个单独的文件(一个带有“BW”记录,另一个带有“NS”记录),以尝试实现中提供的数据选择功能。那也不行 最后,我想通过带或不带选择菜单的“BW”和“NS”记录过滤多个图表(复合、系列和气泡) 我如何实现这一点 问题不在于选择菜单或合成图表,而在于减少数据的方式 第一个参数是add函数,第二个参数是remove函数,最后一个
我如何实现这一点 问题不在于选择菜单或合成图表,而在于减少数据的方式 第一个参数是add函数,第二个参数是remove函数,最后一个参数是initialize函数 您通常不希望在执行以下操作时直接从
v
设置p
:
var grp = dim.group().reduce(
function(p,v){
p.m = +v.m;
p.a = +v.a;
p.b = +v.b;
return p;
},
function(p,v){
p.m = +v.m;
p.a = +v.a;
p.b = +v.b;
return p;
},
function(){return {m:0, a:0, b:0}; });
只有当每把钥匙都是完全唯一的,并且没有两件物品落在同一个箱子里时,这才有效
而且您几乎不想在remove函数中从v
设置p
。这将防止任何东西被移除
相反,添加和减去值,如下所示:
var grp = dim.group().reduce(
function(p,v){
p.m = p.m + +v.m;
p.a = p.a + +v.a;
p.b = p.b + +v.b;
return p;
},
function(p,v){
p.m = p.m - +v.m;
p.a = p.a - +v.a;
p.b = p.b - +v.b;
return p;
},
function(){return {m:0, a:0, b:0}; });
这是一个。谢谢你的解释,戈登。每当我想对多个列进行分组时,我只是简单地使用了reduce,而没有对它进行太多的考虑。下次我会记住这一点。
var grp = dim.group().reduce(
function(p,v){
p.m = p.m + +v.m;
p.a = p.a + +v.a;
p.b = p.b + +v.b;
return p;
},
function(p,v){
p.m = p.m - +v.m;
p.a = p.a - +v.a;
p.b = p.b - +v.b;
return p;
},
function(){return {m:0, a:0, b:0}; });