在D3.js树布局

时间:2015-06-07 11:03:54

标签: javascript d3.js tree spacing

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

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

1 个答案:

答案 0 :(得分:2)

为什么分离功能不能解决您的问题?

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

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

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