如何在同一Svg中的D3.js树中创建多个根节点

时间:2017-11-07 14:40:29

标签: d3.js svg

我需要在同一个svg中创建多个根节点(可能是不同的根节点/树)。如果没有提供父级,则应将子级本身创建为根节点(这将导致单独的根节点)。那么我们如何在同一svg中的D3.js中创建多个根节点(作为与树具有相同属性的单根)。 我需要任何代码片段,因为我是d3.js的新手

提前致谢.. !!

1 个答案:

答案 0 :(得分:0)

我是D3的新手,所以也许有一个比我更优雅的解决方案。这真是一招:

为了拥有 forest 而不是单个,您可以创建一个假根节点,即所有实际根节点的父节点。给它一个允许你区别的属性,例如我在其json中添加了fake: true。 然后只需用CSS隐藏它:

<style>
.fake {
  display: none;
}
</style>

<script type="text/javascript">
   // ...
   var nodeEnter = node.enter().append("g")
      .attr("class", function(d) {
        return d.fake ? "fake" : "node"
      })
   // etc.

   // Same on links:
   link.enter().insert("path", "g")
      .attr("class", function(d) {
        return d.source.fake ? "fake" : "link";
      })
   // etc.
</script>