问题描述
数据集是这样的json文件 [{from: x,to: y},{from: x,to: z}] 等等。
partitioned_data = d3.partition().size([2*Math.PI,100]);
root_node = d3.hierarchy(data).sum(d => d.size);
partitioned_data(root_node);
这是我目前所拥有的
我把它作为根节点:
... 而 root_node.children
仍未定义。我正在使用一个示例数据集,它只是 99->77,77->112 and 112->82
。我希望它给出 root_node = 99
和 root_node.children[0] = 77
等的层次结构。
解决方法
无法将电子邮件数据转换为分层数据是有原因的:
您的数据代表一个链接的非层次图,其中每个节点都可以链接到其他节点。
d3.hierarchy 需要数据,其中每个节点只能有一个父节点并且不允许循环。如果您通过 fromId
标识父项,通过 toId
标识子项,并且您的数据如下所示:
[
{fromId: 1,toId: 2},{fromId: 2,toId: 3},{fromId: 3,toId: 1},]
...您有一个链接循环并且无法从该数据创建层次结构。