我有一个具有缩放和平移功能的 d3 树。对于任何父节点,树都可以有大量的子节点。这可能会导致垂直挤压节点。
我希望节点在缩小时自动调整间距,尤其是垂直间距。
附加的 d3 svg 和 d3 代码的缩放部分:
var svg = d3.select("#tree_container")
.append("svg")
.attr("width", width + margin.right + margin.left)
.attr("height", height + margin.top + margin.bottom)
.call( d3.behavior.zoom().on( "zoom", function () {
svg.attr( "transform", "translate(" + d3.event.translate + ")" + " scale(" + d3.event.scale + ")" )
} ) )
.append("g");
最佳答案
设置节点大小是否足够?然后d3
会自动调整节点的位置。
var radius = 10;
var tree = d3.layout.tree()
.size([height, width])
.nodeSize([radius*2+3]);
...
function update(source) {
...
nodeUpdate.select("circle")
.attr("r", radius)
作为Fiddle
关于d3.js - d3 Tree - 缩放时如何自动调整节点间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58389424/