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