来自CSV的D3.js树布局

时间:2012-12-14 23:35:04

标签: javascript csv d3.js

我目前正在考虑使用d3.layout.tree模块从CSV文件构建树形布局。我能够复制here给出的答案。然而,只需将数据修改为:

source,target
A0,A1
A0,A2
A1,A2
A2,A3
A2,A4

我们发现在调用tree.node(links)之后,我们从链接数组中的第一个元素获得以下示例输出(来自Chrome开发控制台)

Object
source: Object
children: Array[2]
depth: 0
name: "A0"
x: NaN
y: 0
__proto__: Object
target: Object
children: Array[1]
depth: 1
name: "A1"
parent: Object
x: NaN
y: 440
__proto__: Object
__proto__: Object

并且相应的节点数组是:

Object
children: Array[2]
0: Object
1: Object
length: 2
__proto__: Array[0]
depth: 0
name: "A0"
x: NaN
y: 0
__proto__: Object

请注意,它在“x”字段中包含“NaN”值。我无法确定为什么这个例子不产生A0是带有两个子节点的根(A1,A2),就像A2(A3,A4)那样。感谢任何帮助,真的很喜欢D3。显然,这意味着我不会得到所需的树,如何构建树数据结构以提供所需的树?

1 个答案:

答案 0 :(得分:0)

您上面的数据不是树。使用A1,A2,您将创建循环引用(其中一个节点可以包含多个父节点)。如果您的数据是正确的,那么这是一个强制导向的图形,也可以是be created in D3