我在@Mark的帮助下改编了Ger Hobbelt的原创作品,以便在之前的Stackoverflow帖子中为扩展节点添加标签:
Add labels to nodes in Hobbelt's "Group/Bundle Nodes" D3 force layout example?
当我将自己的数据添加到返工的示例中时,我发现了最奇怪的问题。看下面的新小提琴。展开橙色节点。然后展开蓝色。节点18从橙色船体内分离(节点18的链路消失!)并且在节点25和13之间的额外链路中似乎存在不可见节点。如果再次折叠蓝色船体,则链路正常显示。链接的计算方式一定存在问题,但我看不到它。知道造成这种行为的原因是什么吗?
https://jsfiddle.net/NovasTaylor/7yu2g1b2
link.enter().append("line")
.attr("class", "link")
.attr("x1", function(d) { return d.source.x; })
.attr("y1", function(d) { return d.source.y; })
.attr("x2", function(d) { return d.target.x; })
.attr("y2", function(d) { return d.target.y; })
.style("stroke-width", function(d) { return d.size || 1; });
是否与定义链接和节点的顺序有关?请参阅link.enter()后面的小提琴中的代码,其中定义了var g和g.append。