我使用dc.js和crossfilter创建从csv 3个rowcharts。 前两个是简单明了,但第三个需要有一个尺寸设置为我输入CSV的多列,所以我调整了数据,因此,对于该行每列需要(与现值),一个新的重复行与新的列下输入该列值创建的。 见下文;
旧的结构:
ID --- rowchart1 --- rowchart2 ---- rowchart3 ----- ----- rowchart3 ----- rowchart3
1
2
3
新的结构:
ID --- rowchart1 --- rowchart2 ---- newRowchart3
1
2
2
2
3
3
因为我能够在rowchart设置为这个新构造柱,但我无法得到原始计数显示在其他两个这一切工作正常。 有效地我越来越重复计数与其他行的图表。
有没有一种办法按一个唯一的ID,因此只计算那些唯一的ID,而不是每一行算不算?
非常感谢
请参阅: 有没有办法告诉crossfilter治疗阵列作为单独记录的内容,而不是处理整个阵列作为单一关键的?
你举的例子是一个稍微简单的例子,因为你不必为“rowchart3”值的数组,但该解决方案仍然可以为你工作。
答案包括演示如何手动管理图表中的一个类别的jsfiddle。 你会需要改变
function reduceAdd(p, v) {
if (v.topics[0] === "") return p; // skip empty values
v.topics.forEach (function(val, idx) {
p[val] = (p[val] || 0) + 1; //increment counts
});
return p;
}
喜欢的东西
function reduceAdd(p, v) {
if(v.rowhart3a != "")
p[v.rowchart3a] = (p[v.rowchart3a] || 0) + 1; //increment counts
if(v.rowhart3b != "")
p[v.rowchart3b] = (p[v.rowchart3b] || 0) + 1; //increment counts
if(v.rowhart3c != "")
p[v.rowchart3c] = (p[v.rowchart3c] || 0) + 1; //increment counts
return p;
}
我希望这有帮助。 -DJ