Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript D3树状图直边_Javascript_D3.js - Fatal编程技术网

Javascript D3树状图直边

Javascript D3树状图直边,javascript,d3.js,Javascript,D3.js,通过查看,我没有看到开发人员可以用来设置连接线类型的任何内容。似乎只有一种曲线样条连接,但这不是树状图最传统的样式——至少在我的情况下是这样。我想要的是垂直方向的90度角连接节点: 问题: 根据文档判断,没有直接的内置解决方案,但是有没有d3.cluster()可以提供的东西来实现上述结果?还是我最好从头开始编写代码?这个问题在年以前就被问过。然而,我并不认为这是一个重复的问题,因为旧的问题是使用D3 V3 < /强>,并且,事实证明,不容易适应V5。此外,您明确要求垂直布局 尽管如此,基本

通过查看,我没有看到开发人员可以用来设置连接线类型的任何内容。似乎只有一种曲线样条连接,但这不是树状图最传统的样式——至少在我的情况下是这样。我想要的是垂直方向的90度角连接节点:

问题:
根据文档判断,没有直接的内置解决方案,但是有没有
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在笔记本中使用的方法相同,他在笔记本中使用了多个自定义路径生成器来创建径向布局