2012-09-04 21 views
10

Estoy buscando una biblioteca/motor Javascript que pueda hacer diseños de gráficos. (Y cuando digo diseños, quiero decir que lógicamente colocan los vértices muy bien.) Los gráficos con los que estoy trabajando son todos árboles m-arios. M generalmente no es más de 5 o 6, pero puede ser mayor en algunos casos.Javascript Graph Layout Engine

Tengo algo que utilizo ahora, el programa de nodos de Graphviz, y funciona perfectamente. El problema es que cuando ejecuto una aplicación web, debo enviar una solicitud al servidor cada vez que quiero un diseño. Preferiblemente, me gustaría algo escrito en Javascript que pueda ejecutarse rápidamente en el lado del cliente. Todo lo que necesita hacer es proporcionar información de diseño (posicionamiento relativo y otras cosas). No necesito dibujar en un lienzo ni usar SVG ni nada, todo lo que me interesa es el diseño.

El uso de la biblioteca como jQuery o RaphaelJS está bien para mí. Trabajaré con eso. Solo estoy buscando algo para acelerar las cosas un poco.

Además, consideraría escribir el mío si pudiera encontrar una buena descripción de un algoritmo para hacer los diseños. Pero realmente no quiero pasar demasiado tiempo. Tengo algo que funciona ahora, por lo que hacerlo en el lado del cliente es solo una ventaja, no una necesidad.

Respuesta

8

Tome un vistazo a D3 (documentos según los datos)

http://d3js.org/

Tienen algunos diseños de gráficos bonitos.

+0

Definitivamente una muy buena opción. Jugué un poco con eso y estoy sorprendido. Esto es probablemente lo que terminaré usando, pero esperaré un poco para ver si alguien más tiene una sugerencia. – GJK

2

http://sigmajs.org/ es una js lib especializada para la visualización de gráficos. Utiliza Canvas en lugar de SVG.

+0

problema con sigma.js es, que tiene que hacer los diseños por su cuenta ... – echox

+0

en absoluto, el diseño ForceAtlas2 está disponible y puede codificar sus propios diseños. Lo hice por un par de diseños. El verdadero problema es ejecutar un diseño en un navegador web, que es mucho más lento que usar un lenguaje compilado. – Seb

9

Echa un vistazo a dagre https://github.com/cpettitt/dagre ahora usa D3 y presenta el diseño de Graphviz (Sugiyama).

+0

Me encanta, he estado buscando una lib de Javascript que tenga un diseño ortogonal y esta es la primera que está cerca del mar k; ¡Gracias por compartirla! –

2

En un escenario comercial, vale la pena mirar la biblioteca yFiles for HTML. Aunque también viene con sus propias capacidades de visualización y edición, los diseños también se pueden utilizar de forma independiente y, en el momento de redactarse, es muy probable que sean los algoritmos de diseño más flexibles y complejos que encontrará si busca bibliotecas de Javascript puro. Por supuesto, hay técnicas disponibles en la actualidad que básicamente compilarán cualquier biblioteca (por ejemplo, la biblioteca GraphViz) en Javascript "blobs", pero no proporcionan una verdadera API, son más como aplicaciones de consola en el navegador.

Hay un número de demos disponible en línea que muestra lo que puede hacer con los diseños en archivos y. La implementación proporciona versiones sofisticadas y configurables de algoritmos dirigidos a la fuerza, algoritmos jerárquicos (estilo Sugiyama), ortogonales, de árbol, circulares y de borde puro. This overview muestra los diferentes módulos disponibles y que se pueden usar independientemente de las partes del visor y del editor.

Descripción completa: Yo trabajo para la empresa que crea yFiles, pero en SO no represento a mi empleador.