Separación vertical del árbol D3

Estoy usando el diseño del árbol D3, como este:http://mbostock.github.com/d3/talk/20111018/tree.html

Lo he modificado para mis necesidades y tengo un problema. El ejemplo también tiene el mismo problema: si tiene demasiados nodos abiertos, entonces se vuelven compactos y dificultan la lectura y la interacción. Quiero definir un espacio vertical mínimo entre nodos mientras se redimensiona la etapa para permitir dicho espaciado.

Intenté modificar el algoritmo de separación para que funcione:

.separation(function (a, b) {
    return (a.parent == b.parent ? 1 : 2) / a.depth;
})

Eso no funcionó. También intenté calcular qué profundidad tenía la mayoría de los niños y luego decir la altura del escenario a serchildren * spaceBetweenNodes. Eso me acercó más, pero aun así no fue exacto.

depthCounts = [];
nodes.forEach(function(d, i) { 
    d.y = d.depth * 180;

    if(!depthCounts[d.depth])
        depthCounts[d.depth] = 0;

    if(d.children)
    {
        depthCounts[d.depth] += d.children.length;
    }
});

tree_resize(largest_depth(depthCounts) * spaceBetweenNodes);

También traté de cambiar el nodo dex valor también en el método a continuación donde se calcula ely Separación, pero no cigarro. Yo también publicaría ese cambio pero lo eliminé de mi código.

nodes.forEach(function(d, i) { 
    d.y = d.depth * 180;
});

Si puede sugerir una forma o conocer una manera en que pueda lograr un espacio mínimo vertical entre los nodos, publíquelo. Estaré muy agradecido. Probablemente me esté perdiendo algo muy simple.

Respuestas a la pregunta(4)

Su respuesta a la pregunta