2014-04-23 32 views
5

Ho costruito un grafico di forzatura per l'analisi dei social network.Prevenzione della sovrapposizione nodo in direzione forzata grafico

Il problema che sto affrontando è che i nodi mantiene su sovrappongono a vicenda,

Come posso evitare sovrapposizioni di nodo forza diretta grafico?

Ecco il mio grafico code with dummy data

E che segue è l'immagine per la mia forza diretta

enter image description here

enter image description here

Come posso rimuovere la sovrapposizione di questi nodi? e come posso mantenere almeno una certa distanza tra i collegamenti in modo che i collegamenti siano correttamente visibili?

+2

Rilevazione di collisione? http://bl.ocks.org/mbostock/3231298 – Josh

+0

@Josh Ho messo 'var q = d3.geom.quadtree (graph.nodes), i = 0, n = nodes.length; while (++ i analyticalpicasso

+1

Potresti anche semplicemente aumentare il parametro "carica" ​​nel tuo layout di forza, e magari renderlo una funzione del tipo di nodo (in modo che le icone più grandi si spingano a vicenda più di quelle più piccole). Tuttavia, dato il numero di collegamenti che hai, probabilmente avrai ancora linee sovrapposte. – AmeliaBR

risposta

8

Esistono due approcci per evitare la sovrapposizione in un layout di forza d3.

Il primo è quello di regolare i parametri di force object, il più rilevante dei quali è il parametro "carica". I nodi con valori di "carica" ​​negativi allontanano altri nodi (rispetto ai nodi con valori positivi avvicinano altri nodi) e si può aumentare la quantità di carica per causare una spinta maggiore.

Il valore predefinito per "addebito" è -30, quindi da lì è possibile regolarlo finché non si ottiene un effetto desiderato. Non esiste una formula semplice per determinare il valore desiderato, poiché dipende anche dagli altri parametri e dalla quantità di link nel tuo grafico.

Se per qualsiasi motivo la regolazione della carica non funziona per te (ad verificare la presenza di nodi sovrapposti, come in this Mike Bostock example suggerito da Josh nei commenti.

+0

Un altro (meno ovvio) in cui si evita la sovrapposizione è https://bl.ocks.org/mbostock/1062383 – Fuhrmanator