让我首先说明我对D3和Javascript是全新的。通过一点点实验,我试图开发一个Tree Like结构,节点可以有多个父母。D3图形布局 - 具有多个父级的树结构
输入:
的Json与节点和链接信息一样,
var graph = {
"nodes": [ { "id" : 0},
{ "id" : 1},
{ "id" : 2},
{ "id" : 3},
{ "id" : 4},
{ "id" : 5}
],
"links": [ { "target": 5, "source": 1 },
{ "target": 2, "source": 0 },
{ "target": 3, "source": 4 },
{ "target": 1, "source": 2},
{ "target": 1, "source": 0 },
]
};
注:这只是参考,因为我怎么有数据,也可能是数千节点。
输出:
我要像树结构的输出,有点像this,如说的节点必须等与根是在顶部和相同的水平结构的深度/水平被绘制节点以这样的方式排列以最小化链路重叠。
问题,我面对:
- 由于我只给节点及其来源&目标,而不是它们的坐标,我经历了整个列表解析计算的水平,然后除以基于高度在那个级别上,然后绘制节点。处理这类问题的最有效方法是什么?我应该深入研究算法解决方案吗?
或者
- 是否有D3一些图表描绘函数,它接受这个JSON作为输入并执行该作业的其余部分?
请不说,节点可以有多个父和我在这里主要焦点正密谋在适当/等级秩序这些节点的,所以我现在面临的主要问题是计算X/Y坐标的所有节点只给出如上所述的输入。
请帮我更好的理解这个话题,谢谢。
我无法弄清楚你的预期输出。 **假设零**是根节点,它会[看起来像这样](http://imgur.com/a/FZCrP)。由于父母/子女关系失败,3到4会消失...这是您的预期产出吗? – Mark
@Mark实际上,输入只是作为输入的参考,它可能包含数千个节点,例外的输出不管是哪个根节点应该出现在顶部,然后是它的子节点等等最小链路重叠。希望我能够解释我自己;) – Mohit
但是,我的图是预期的输出给你的样本数据? – Mark