Domanda

Ho una configurazione D3 usando "nodi" e "linee".Quando appare il grafico, rimbalza con la gravità finché non si deposita nel mezzo.Qualcuno sa di un modo per farla apparire automaticamente nel mezzo senza il tipo di effetto "rimbalzo"?

P.S Sto usando layout di forza

È stato utile?

Soluzione

Chiamata Avvio ripristina il parametro di raffreddamento, alfa;Alpha decade esponenzialmente in quanto il layout converge sulla sua soluzione, quindi si ferma in modo da evitare di sprecare la CPU.Non ci sono jittering all'inizio (diverso dai nodi coincidenti, che è necessario per evitare un divario per zero).Tuttavia, ogni volta che hai forze contrastanti e vincoli geometrici (collegamenti), è naturale aspettarsi che il layout si adatta all'avvio.

Se si desidera evitare questo rimbalzo, devi mantenere il grafico permanentemente caldo (dire chiamando d3.timer(function() { force.resume(); })) o devi fare qualcos'altro, come regolare manualmente il parametro alfa per riscaldare gradualmente invece di istantaneamente. .

Modifica: in 2.8.x, è possibile evitare il primo rimbalzo interamente eseguendo il layout di forza in modo sincrono all'avvio.Ad esempio: http://bl.ocks.org/1667139

Altri suggerimenti

Un'altra strategia che ho usato prima è quello di aumentare gradualmente i raggi di ciascun nodo da zero sopra il primo, diciamo zecche da 50 o 100 di forza.Puoi vedere cosa appare come (a Protovis, ma si comporterebbe allo stesso modo in D3) nei cartogrammi di Dorling su Sito di dati one.org .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top