¿cuál de los frameworks de dibujo de gráficos Java de código abierto que se utilizarán para un diagrama de red con los siguientes requisitos? El gráfico tendrá menos de 1000 nodos.comparando marcos de dibujo de gráfico de Java de fuente abierta (JUNG y Prefuse) para dibujar la topología de red
1) tiene bordes paralelos
2) dirigido y bordes no dirigidos dentro de un único gráfico
3) nodos representados por imágenes
4) la interacción del usuario con nodos y los bordes
5) añadir dinámicamente/eliminación de nodos y bordes
6) etiquetado múltiple en nodos y bordes, los diferentes niveles de etiquetado pueden ser activados/desactivados por los usuarios. (como dibujar en capas y apagar/encender una capa)
7) diferentes algoritmos de diseño para mostrar topologías en estrella, anillo, malla
He evaluado JUNG y Prefuse. Esto es lo que encontré para cada uno de mis requisitos.
1) El prefusible no puede mostrar bordes paralelos mientras JUNG lo admite. ¿Se puede manipular el código de prefijado para mostrar bordes paralelos? Dado que esto implica cambios básicos en el nivel de datos, creo que esto sería más difícil que los cambios de representación personalizados habituales.
2) No encontré ninguna referencia al gráfico combinado (ambos bordes dirigidos y no dirigidos) tanto en el prefijo como en JUNG. ¿Alguien sabe de otra manera?
3) Esto parece fácil tanto con Prefuse y JUNG
4) Una vez más, tanto prefuse y JUNG proporciona soporte para la interacción del usuario.
5) Tanto el prefijo como JUNG lo admiten. ¿Cómo funciona cada marco mientras se vuelve a dibujar el gráfico? Vi en otra publicación que el prefuse no funciona bien para las actualizaciones dinámicas (Prefuse Toolkit: dynamically adding nodes and edges)
6) Esto se reduce a modificar el gráfico y volver a dibujarlo. Entonces la pregunta es la misma que 5)
7) Tanto JUNG como prefuse tienen múltiples algoritmos de diseño. Pero cuando traté de mostrar el mismo conjunto de datos usando FruchtermanReingoldLayout en JUNG y Prefuse, obtengo diferentes pantallas. ¿Alguna idea de por qué? De alguna manera, los algoritmos de diseño en Prefuse parecen mostrar una mejor disposición que en JUNG (la representación también es mejor, creo), aunque la mayoría de los algoritmos de diseño en Prefuse se basan en la implementación de JUNG. Los diseños de prefusiones como ForceDirectedLayout/FruchtermanReingoldLayout y CircleLayout se asignan directamente a topologías de estrella, círculo, malla.
Fuera de estos requisitos, el prefuse tiene un buen soporte para expresiones y lenguaje de consulta pero parece que no se desarrolla activamente a diferencia de JUNG. ¿cuál tiene mejor visualización? ¿Alguna sugerencia sobre cuál será adecuada y cómo superar las deficiencias?
¿Hay algún otro framework que pueda usar?
+1 para este . Me gusta el hecho de que hayas trabajado intensamente evaluando dos posibilidades y presentado tus hallazgos. Aquí hay mucho valor para otros más allá de su pregunta. Esta podría ser la mejor "primera pregunta" para un nuevo usuario que he visto en dos años aquí. Daría más si pudiera. – duffymo