如何为每个节点单独设置D3树布局的nodeSize?在我的例子中,我有一个包含不同大小节点的树,当节点宽度变化时,设置d3.layout.tree().nodeSize([300, 200]);
会产生奇怪的间距。 nodeSize似乎是少数几个不将函数作为参数的D3函数之一。
我发现最接近的是分离功能,但它并没有真正解决问题。
有办法,还是我需要手动计算位置?
答案 0 :(得分:2)
为什么分离功能不能解决您的问题?
你得到两个节点作为分离函数的参数。如果设置nodeSize([1, 200])
并计算分离函数内两个节点的实际宽度,则可以添加适当的分隔。
.separation(function(a, b) {
var totalWidth = a.width + b.width;
return (totalWidth / 2) + 10;
})
也许您需要更多来计算宽度,但如果没有您的代码,我无法猜测您的节点宽度是如何计算的。