Pergunta

Eu tenho uma configuração D3 usando "nós" e "linhas".Quando o gráfico aparece pela primeira vez, ele salta com a gravidade até que ele se instale no meio.Alguém sabe de uma maneira de parecer automaticamente no meio sem o tipo de efeito "Bounce"?

p.s eu estou usando o layout de força

Foi útil?

Solução

Chamando o início redefine o parâmetro de resfriamento, alfa;Alpha decai exponencialmente à medida que o layout converge em sua solução e, em seguida, pára de evitar desperdiçar a CPU.Não há jittering no início (além dos nós coincidentes, que é necessário para evitar uma divisão por zero).No entanto, sempre que você tiver forças conflitantes e restrições geométricas (links), é natural esperar que o layout ajuste ao iniciar.

Se você quiser evitar este salto, você precisa manter o gráfico permanentemente quente (digamos chamando d3.timer(function() { force.resume(); })) ou você precisaria fazer outra coisa, como ajustar o parâmetro alfa manualmente para reaquecer gradualmente em vez de instantaneamente. .

Editar: em 2.8.x, você pode evitar o primeiro salto inteiramente executando o layout de força síncrona na inicialização.Por exemplo: http://bl.ocks.org/1667139

Outras dicas

Outra estratégia que usei antes é aumentar gradualmente os RADII de cada nó de zero nos primeiros, dizem, 50 ou 100 carrapatos.Você pode ver o que parece (em Protovis, mas se comportaria da mesma maneira em D3) nos cartogramas de Dorling no site de dados One.org .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top