【发布时间】:2014-03-30 06:26:35
【问题描述】:
据说 d3 不会从 json 或 csv 中获取任何特定数据。但我注意到了一些奇怪的行为。
在这个例子http://bl.ocks.org/mbostock/4339083中,输入文件是json所以
d3.json("/d/4063550/flare.json", function(error, flare) {
root = flare;
root.x0 = height / 2;
root.y0 = 0;
function collapse(d) {
if (d.children) {
d._children = d.children;
d._children.forEach(collapse);
d.children = null;
}
}
root.children.forEach(collapse); //?
update(root);
});
在这个example中,加载的是一个csv文件
d3.csv("FederalBudget_2013_a.csv", function(csv) {
var data=[];
//Remove all zero values nodes
csv.forEach(function (d) {
var t=0;
for (var i=0; i < sumFields.length; i++) {
t+= Number(d[sumFields[i]]);
}
if (t > 0) {
data.push(d);
}
})
var nest = d3.nest()
.key(function(d) { return d.Level1; })
.key(function(d) { return d.Level2; })
.key(function(d) { return d.Level3; })
.entries(data);
root={};
root.values=nest;
root.x0 = h / 2;
root.y0 = 0;
var nodes = tree.nodes(root).reverse(); //?
tree.children(function (d){ return d.children;}); //?
update(root);
});
请说明为什么我用不同的方法打了问号。我试图在第二个例子中看到孩子们,但没有返回任何结果。 谢谢。
【问题讨论】: