2011-10-11 14 views
16

Sto usando d3.js per generare un layout di controllo della forza del mio grafico costituito da nodi 50K. Per qualcosa di meno di 5K, la libreria fa miracoli. Sto utilizzando l'esempio direttamente da d3.js examples page modificando il riferimento in modo che carichi il mio file json.La visualizzazione del layout di forza D3 è lenta quando si utilizza un set di dati di grandi dimensioni?

Ci sono suggerimenti per velocizzare il rendering? Se ci sono altre alternative, sarebbe anche bello.

risposta

10

Dubito che troverai qualsiasi opzione che possa rendere i nodi 50K in un layout di force-directed senza rallentare la scansione - most implementations are O(n3) e non penso che D3 sia diverso.

Se gli strumenti non in linea sono accettabili, si potrebbe verificare Gephi, uno strumento desktop-based che può trattare con molto grandi grafici.

+18

D3 utilizza il ravvicinamento Barnes-rifugio, che rende O (n lg n) per ogni iterazione. Ma anche senza la simulazione, il rendering di 50.000 nodi (e comunque molti collegamenti) sarà lento. – mbostock

6

Per me, si tratta di un'animazione che è molto lento durante la visualizzazione di un sacco di dati attraverso il grafico d3 forza-diretto.

Quando ho bisogno di visualizzare molti nodi/collegamenti, il mio piano è quello di rimuovere l'animazione e avere un diagramma di forza statica. Forse puoi provarlo? Sì, è meno divertente, ma una volta che hai molti nodi, non penso che l'animazione sia così utile.

+0

Questo è vero. L'animazione non sarebbe molto utile. Non l'ho ancora fatto, ma sto lavorando su un approccio alternativo che dovrebbe essere visualizzato solo quando alcuni nodi sono espansi, qualcosa come il rendering dinamico dei nodi. – Legend