【问题标题】:Specifying nodeSize for each node individually in D3.js tree layout在 D3.js 树布局中为每个节点单独指定 nodeSize
【发布时间】:2015-06-07 11:03:53
【问题描述】:

如何为每个节点单独设置 D3 树布局的 nodeSize?在我的情况下,我有一个包含不同大小节点的树,并且当节点的宽度变化时,设置 d3.layout.tree().nodeSize([300, 200]); 会导致奇怪的间距。 nodeSize 似乎是少数不将函数作为参数的 D3 函数之一。 我发现最接近的是分离功能,但它并没有真正解决问题。

有没有办法,还是需要手动计算位置?

【问题讨论】:

    标签: javascript d3.js tree spacing


    【解决方案1】:

    为什么分离功能没有解决你的问题?

    你得到两个节点作为分离函数的参数。如果你设置nodeSize([1, 200])并计算分离函数内两个节点的实际宽度,你可以添加一个适当的分离。

    .separation(function(a, b) {
      var totalWidth = a.width + b.width;
      return (totalWidth / 2) + 10;
    })
    

    也许您需要更多的时间来计算宽度,但没有您的代码,我无法猜测节点的宽度是如何计算的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多