Sto usando il layout albero D3, come questa: http://mbostock.github.com/d3/talk/20111018/tree.htmlD3 albero separazione verticale
ho modificato per le mie esigenze e sono in esecuzione in un problema. L'esempio ha lo stesso problema in cui, se si hanno troppi nodi aperti, diventano compatti e rende difficile la lettura e l'interazione. Sto volendo definire uno spazio verticale minimo tra i nodi durante il ridimensionamento dello stadio per consentire tale spaziatura.
Ho provato modificando l'algoritmo di separazione per farlo funzionare:
.separation(function (a, b) {
return (a.parent == b.parent ? 1 : 2)/a.depth;
})
che non funzionava. Ho anche provato a calcolare quale profondità aveva il maggior numero di bambini, quindi ho detto che l'altezza del palco era children * spaceBetweenNodes
. Questo mi ha avvicinato, ma non era ancora preciso.
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);
Ho anche cercato di modificare il valore del nodo x
anche nel metodo sotto dove calcola la separazione y
, ma sigaro. Pubblicherei anche quel cambiamento ma l'ho rimosso dal mio codice.
nodes.forEach(function(d, i) {
d.y = d.depth * 180;
});
Se è possibile suggerire un modo o sapere un modo per ottenere una spaziatura minima verticale tra i nodi, si prega di postare. Saró molto grato. Probabilmente mi manca qualcosa di molto semplice.
Grazie, gentile signore !! :) –