可能是一个初学者的问题,但在看了大量的例子后,我无法理解如何d3.nest()或d3.map()或任何必要从我的CSV中提取我想要的数字-file with D3.js。
我有一个包含以下数据的CSV文件:
name,year,number1,number2,number3
Superman,2003,227141296,214978953,212418250
Superman,2004,232769230,220606887,211301729
Superman,2005,192769230,220606887,211301729
Batman,2003,252873171,239836381,225174161
Batman,2004,286137492,262439880,243001175
Batman,2004,232769230,220606887,211301729
Spiderman,2006,309584667,279490239,248758932
Spiderman,2007,324081833,278022620,246734614
Spiderman,2008,294081833,278022620,246734614
我想要做的是创建:
d3.nest()是否能解决这个问题? 在这种情况下,我是否必须为我想要绘制的每个路径重复嵌套?
如果答案显而易见并且您必须阅读本文,我感到很抱歉,但如果您只能引导我朝着正确的方向前进,我将会非常感激!
d3.csv("budsjettgrafikk.csv", function(error, data){
data.forEach(function(d) {
***???***;
})
d3.nest()
***???*** ;
});
答案 0 :(得分:2)
是的,d3.nest()
就是你想要的。
d3.nest()
.key(function(d) { return d.name; })
.entries(data)
这会将数据转换为您需要的形式;即一个2D数组(更确切地说是每个对象中具有较低级别数组的对象数组),其中顶层有2个成员(“超人”和“蝙蝠侠”),每个成员都包含一行记录。
要渲染线条,因为这是一个嵌套的数据结构,您需要了解如何使用nested selections。