【问题标题】: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;
})
也许您需要更多的时间来计算宽度,但没有您的代码,我无法猜测节点的宽度是如何计算的。