2011-10-11 17 views
16

Estoy usando d3.js para generar un diseño dirigido a la fuerza de mi gráfico que consta de 50K nodos. Por algo menos de 5K, la biblioteca funciona de maravilla. Estoy usando el ejemplo directamente del d3.js examples page cambiando la referencia para que cargue mi archivo json.D3 visualización de diseño de fuerza muerta lenta cuando se utiliza un gran conjunto de datos?

¿Hay algún consejo para acelerar el renderizado? Si hay otras alternativas, eso sería bueno también.

Respuesta

10

Dudo que encuentre ninguna opción que pueda renderizar 50K nodos en un diseño dirigido a la fuerza sin ralentizar a pasos - most implementations are O(n3), y no creo que D3 sea diferente.

Si las herramientas fuera de línea son aceptables, puede consultar Gephi, una herramienta de escritorio que puede tratar con gráficos muy grandes.

+18

D3 utiliza la aproximación Barnes-Hut, lo que hace que sea O (n lg n) por iteración. Pero incluso sin la simulación, renderizar 50,000 nodos (y cuantos enlaces) van a ser lentos. – mbostock

6

Para mí, es la animación que es muy lento al mostrar una gran cantidad de datos a través del gráfico de la fuerza dirigida d3.

Cuando necesito mostrar una gran cantidad de nodos/enlaces, mi plan será eliminar la animación y tener un diagrama de fuerzas dirigidas estáticas. ¿Tal vez puedas intentar eso? Sí, es menos divertido, pero una vez que tienes muchos nodos, no creo que la animación sea tan útil.

+0

Eso es verdad. La animación no sería de mucha utilidad. No he hecho esto todavía, pero estoy trabajando en un enfoque alternativo que se vería solo cuando ciertos nodos se expanden, algo así como la representación de nodos dinámicos. – Legend

Cuestiones relacionadas