使用热图进行交叉过滤 dc.js
Crossfiltering with heatmap dc.js
尝试使用热图(构建为制图)和行图构建 simple dashboard。选择区域,我希望在行图上看到变化,反之亦然。但是这样不行。
var dim = ndx.dimension(d=>[d.x,d.y,d.region])
var group = dim.group().reduce(
(p,v)=>{
++p.count;
p.total+=v.salary;
p.avg_salary=p.total/p.count;
return p
},
(p,v)=>{
--p.count;
p.total-=v.salary;
p.avg_salary=p.total/v.count;
return p
},
()=>({avg_salary: 0,count: 0,total:0})
)
var graduationDim = ndx.dimension(d=>d.graduation)
var graduationGroup = graduationDim.group().reduce(
(p,v)=>{
++p.count;
p.total+=v.salary;
p.avg_salary=p.total/p.count;
return p
},
(p,v)=>{
--p.count;
p.total-=v.salary;
p.avg_salary=p.total/v.count;
return p
},
()=>({avg_salary: 0,count: 0,total:0}))
我做错了什么?非常感谢任何帮助或建议。
谢谢
这是你的 reduce-remove 函数中的一个错误,v.count
应该是 p.count
:
(p,v)=>{
--p.count;
p.total-=v.salary;
p.avg_salary=p.total/p.count;
return p
},
由于您的原始数据中不存在此字段,因此您得到的可能是 NaN。
尝试使用热图(构建为制图)和行图构建 simple dashboard。选择区域,我希望在行图上看到变化,反之亦然。但是这样不行。
var dim = ndx.dimension(d=>[d.x,d.y,d.region])
var group = dim.group().reduce(
(p,v)=>{
++p.count;
p.total+=v.salary;
p.avg_salary=p.total/p.count;
return p
},
(p,v)=>{
--p.count;
p.total-=v.salary;
p.avg_salary=p.total/v.count;
return p
},
()=>({avg_salary: 0,count: 0,total:0})
)
var graduationDim = ndx.dimension(d=>d.graduation)
var graduationGroup = graduationDim.group().reduce(
(p,v)=>{
++p.count;
p.total+=v.salary;
p.avg_salary=p.total/p.count;
return p
},
(p,v)=>{
--p.count;
p.total-=v.salary;
p.avg_salary=p.total/v.count;
return p
},
()=>({avg_salary: 0,count: 0,total:0}))
我做错了什么?非常感谢任何帮助或建议。 谢谢
这是你的 reduce-remove 函数中的一个错误,v.count
应该是 p.count
:
(p,v)=>{
--p.count;
p.total-=v.salary;
p.avg_salary=p.total/p.count;
return p
},
由于您的原始数据中不存在此字段,因此您得到的可能是 NaN。