javascript - 如何将电子邮件数据集转换为旭日形图的层次结构?
问题描述
数据集是这样的 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},
]
...您有一个链接循环,无法从该数据创建层次结构。
推荐阅读
- anaconda - Autohotkey以管理员身份运行程序不起作用
- python - 在 rhel 7.6 + 上安装 pip 在未知分发选项上失败:project_urls
- arduino - 如何使用 Arduino IDE 通过 I2C 总线在两个不同的地址上写入消息?
- firebase - 将 SignOutUser 发布到 Firebase 时出现“错误 404”
- sql - 通过 OPENROWSET 'Microsoft.ACE.OLEDB.12.0' 导出时格式化 Excel 中的单元格
- python - 如何限制 Python 脚本一次只能使用一个可选参数调用
- python - sql 查询到 python django 查询
- google-chrome-extension - google extensions 文档异步注册说明冲突
- node.js - 一个反应原生项目安装错误
- javascript - Nodejs代码将输出作为承诺数组而不是解析值?