Pionowa separacja drzewa D3

Używam układu drzewa D3, takiego jak ten:http://mbostock.github.com/d3/talk/20111018/tree.html

Zmodyfikowałem go dla moich potrzeb i mam problem. Przykład ma ten sam problem, gdzie jeśli masz zbyt wiele otwartych węzłów, stają się one zwarte i utrudniają czytanie i interakcję. Chcę zdefiniować minimalną pionową przestrzeń między węzłami podczas etapu zmiany rozmiaru, aby umożliwić takie odstępy.

Próbowałem zmodyfikować algorytm separacji, aby działał:

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

To nie zadziałało. Próbowałem również obliczyć, która głębokość ma najwięcej dzieci, a następnie określać wysokość scenychildren * spaceBetweenNodes. To przybliżyło mnie, ale wciąż nie było dokładne.

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);

Próbowałem także zmienić węzełx wartość również w poniższej metodzie, w której obliczay separacja, ale bez cygara. Dodałbym też tę zmianę, ale usunąłem ją z mojego kodu.

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

Jeśli możesz zasugerować sposób lub znać sposób, w jaki mogę osiągnąć minimalny odstęp w pionie między węzłami, napisz. Będę bardzo wdzięczny. Prawdopodobnie brakuje mi czegoś bardzo prostego.

questionAnswers(4)

yourAnswerToTheQuestion