D3.js d3树-如何在缩放时自动调整节点间距

D3.js d3树-如何在缩放时自动调整节点间距,d3.js,D3.js,我有一个具有缩放和平移功能的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.

我有一个具有缩放和平移功能的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)
作为