Pregunta

Tengo un D3 instalación mediante los "Nodos" y "Líneas".Cuando el gráfico aparece por primera vez, rebota con la gravedad hasta que se asienta en el medio.¿Alguien sabe de una manera para que aparezca automáticamente en el medio sin el "rebote" tipo de efecto?

P. S yo estoy usando la fuerza de diseño

¿Fue útil?

Solución

La llamada a start restablece el parámetro de enfriamiento, alfa;alfa decae exponencialmente a medida que el diseño converge en su solución, y luego se detiene para evitar el desperdicio de la cpu.No hay variación en el inicio (aparte de la coincidencia de los nodos, la cual es necesaria para evitar una división por cero).Sin embargo, en cualquier momento usted tiene fuerzas en conflicto y las restricciones geométricas (links), es natural esperar que el diseño para ajustar al inicio.

Si quieres evitar este rebote, usted necesita para mantener el gráfico permanentemente caliente (es decir, llamando a d3.timer(function() { force.resume(); })) o tendría que hacer algo más, como ajustar el parámetro alfa manualmente para que se caliente poco a poco en lugar de forma instantánea.

Editar:En la versión 2.8.x, usted puede evitar el primer rebote completamente mediante la ejecución de la fuerza de diseño de forma sincrónica en el inicio.Por ejemplo: http://bl.ocks.org/1667139

Otros consejos

Otra estrategia que he usado antes es aumentar gradualmente los radios de cada nodo de cero sobre la primera, digamos, 50 o 100 ticks de fuerza.Puedes ver lo que parece (en Protovis, pero se comportaría de la misma manera en D3) en los cartogramas Dorling en el sitio de datos one.org .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top