我有一些树形数据,我使用d3.stratify
分层,这给了我一个正确的数据结构(它有子,数据和父项)。但是,当我通过d3.tree()
时,x和y值都是NaN,这使得绘制它们变得不可能。基于我见过的示例,我不需要运行d3.hierarchy()
,因为stratify
为我做了这一点,而且我尝试使用hierarchy()
但没有成功。
我尝试将JSON.stringify(data)
粘贴到此处,但是它给了我一个关于将循环结构转换为JSON的错误,这是不可能的,所以这也不起作用。我所知道的是每一层(除了顶层)都有一个children
数组,一个data
对象和一个parent
对象,所以这一切似乎都是正确的。
编辑:我尝试了一些测试数据(from this link),我仍然得到x和y的NaNs。我复制了treeData,将其通过d3.hierarchy
然后通过此tree()
调用,x和y仍为NaN。
var treeMap = d3.tree()
.size(width, height2); // 1020, 170 in my case.
var treeData =
{
"name": "Top Level",
"children": [
{
"name": "Level 2: A",
"children": [
{ "name": "Son of A" },
{ "name": "Daughter of A" }
]
},
{ "name": "Level 2: B" }
]
};
treeData = d3.hierarchy(treeData, function(d) { return d.children; });
var nodes = treeMap(treeData); // gives NaN x and y values.
答案 0 :(得分:1)
([height, width])
而是将(height, width)
传递给树函数,所以当然它失败了。给它正确的数组可以解决所有问题。