2013-06-24 9 views
8

Uso il layout di forza d3 per costruire un grafico e quindi memorizzare le posizioni dei nodi in un database.Come posso visualizzare un grafico usando il layout di forza d3 con le posizioni iniziali impostate e nessun movimento?

La prossima volta che voglio mostrare il grafico, leggo le posizioni dal database nei nodi e quindi avvio il layout della forza.

Ciò fa sì che il layout si sposti leggermente.

C'è modo di mostrare il grafico con le posizioni del nodo memorizzato senza chiamare force.start()?

Quello che voglio è una modalità "sola lettura" per mostrare un grafico stabile creato da qualcun altro in precedenza.

/Hans

risposta

10

vi consiglio di leggere la documentation of the force layout. È veramente buono

Come già menzionato, è necessario impostare gli attributi px e py per ciascun nodo. Quindi, è possibile impostare l'attributo fixed su true in ciascun nodo.

Ciò implica che il calcolo force.start() non avrà alcun effetto.


Un'altra cosa che si può provare è quello di impostare il valore alfa a 0, e quindi avviare la simulazione:

force.alpha(0) 
    .start() 

Non sono sicuro se questo metodo funziona. Posta un jsFiddle se non è così.

+1

Oh, ho letto la documentazione avanti e indietro, ma non sono abbastanza intelligente per capire che dovrei usare l'attributo fisso :-). Funziona benissimo! Grazie! – hansbrattberg

+0

È normale non preoccuparti. Sono contento che sia stato d'aiuto. Puoi accettare la risposta se risolvono il tuo problema. –

Problemi correlati