Javascript D3树状图直边
通过查看,我没有看到开发人员可以用来设置连接线类型的任何内容。似乎只有一种曲线样条连接,但这不是树状图最传统的样式——至少在我的情况下是这样。我想要的是垂直方向的90度角连接节点: 问题:Javascript D3树状图直边,javascript,d3.js,Javascript,D3.js,通过查看,我没有看到开发人员可以用来设置连接线类型的任何内容。似乎只有一种曲线样条连接,但这不是树状图最传统的样式——至少在我的情况下是这样。我想要的是垂直方向的90度角连接节点: 问题: 根据文档判断,没有直接的内置解决方案,但是有没有d3.cluster()可以提供的东西来实现上述结果?还是我最好从头开始编写代码?这个问题在年以前就被问过。然而,我并不认为这是一个重复的问题,因为旧的问题是使用D3 V3 < /强>,并且,事实证明,不容易适应V5。此外,您明确要求垂直布局 尽管如此,基本
根据文档判断,没有直接的内置解决方案,但是有没有
d3.cluster()
可以提供的东西来实现上述结果?还是我最好从头开始编写代码?这个问题在年以前就被问过。然而,我并不认为这是一个重复的问题,因为旧的问题是使用D3 <强> V3 < /强>,并且,事实证明,不容易适应V5。此外,您明确要求垂直布局
尽管如此,基本方法保持不变:只需使用自定义路径生成器。在旧v3的基础上,可以按如下方式进行:
svg.selectAll(".link")
.data(root.links())
.enter().append("path")
.attr("d", elbow); // Appended paths use the custom path generator.
// Custom path generator
function elbow(d) {
return "M" + d.source.x + "," + d.source.y + "H" + d.target.x + "V" + d.target.y;
}
通过对V5API进行一些小的修改,MikeBostock的演示可以重写为一个新的版本
请注意,这与Mike Bostock在笔记本中使用的方法相同,他在笔记本中使用了多个自定义路径生成器来创建径向布局