¿Cuál es la mejor herramienta para visualizar (dibujar los vértices y bordes) un gráfico con 1000000 vértices? Hay alrededor de 50000 aristas en el gráfico. Y puedo calcular la ubicación de vértices y aristas individuales.
Estoy pensando en escribir un programa para generar un svg. ¿Cualquier otra sugerencia?
visualization
graphs
Cici
fuente
fuente
Respuestas:
También sugiero
Gephi
software ( https://gephi.github.io ), que parece ser bastante poderoso. Puede encontrar información adicional sobre el usoGephi
con redes grandes aquí y, más generalmente, aquí .Cytoscape
( http://www.cytoscape.org ) es una alternativa aGephi
, siendo otra plataforma popular para análisis y visualización de redes complejas.Si desea trabajar con redes mediante programación (incluida la visualización) en R, Python o C / C ++, puede verificar la
igraph
colección de bibliotecas. Hablando de R, puede encontrar interesantes las siguientes publicaciones de blog: sobre el uso de R con Cytoscape ( http://www.vesnam.com/Rblog/viznets1 ) y sobre el uso de R con Gephi ( http://www.vesnam.com/ Rblog / viznets2 ).Para obtener listas extensas de software de análisis y visualización de redes , incluidas algunas comparaciones y revisiones, puede consultar las siguientes páginas: 1) http://wiki.cytoscape.org/Network_analysis_links ; 2) http://www.kdnuggets.com/software/social-network-analysis.html ; 3) http://www.activatenetworks.net/social-network-analysis-sna-software-review .
fuente
https://gephi.github.io/ dice que puede manejar un millón de bordes. Si su gráfico tiene 1000000 vértices y solo 50000 aristas, la mayoría de sus vértices no tendrán aristas de todos modos.
De hecho, la especificación Gephi es el doble de su ejemplo: "Redes de hasta 50,000 nodos y 1,000,000 de bordes"
fuente
Creo que eso
Gephi
podría enfrentar problemas de falta de memoria, necesitará al menos 8 Gb de RAM. Aunque el número de bordes no es extremadamente grande.Posiblemente, la herramienta más apropiada en este caso sería
GraphViz
. Es una herramienta de línea de comandos para visualizaciones de red, y presumiblemente sería más tolerante con el tamaño del gráfico. Además, como recuerdo, enGraphViz
él es posible utilizar coordenadas precalculadas para facilitar los cálculos.Traté de encontrar ejemplos del mundo real de uso
GraphViz
con grandes gráficos, pero no tuve éxito. Aunque encontré una discusión similar sobre la ciencia computacional .fuente
Informes: terminé codificando graphml y usando yEd para la visualización (solo porque estoy familiarizado con esta combinación. Apuesto a que gephi o graphviz funcionarían bien e incluso podrían ser mejores). Como calculé la ubicación de todos los nodos, la memoria no era un problema tan grande. Codificar graphml es un poco más fácil en comparación con codificar svg, ya que no tengo que especificar explícitamente la ubicación de los bordes.
fuente
PajekXXL está diseñado para manejar redes enormes. Pero Pajek también es una especie de programa extraño con una interfaz poco intuitiva.
fuente
Yo recomendaría usar Graphexp. Gephi depende en gran medida de la RAM de su computadora, que obviamente es limitada. Graphexp, por otro lado, muestra solo un número limitado de nodos, a través del cual puede navegar a otros nodos. He visualizado un gráfico con 700 millones de vértices usando Graphexp como interfaz de usuario y Janusgraph con HBase como almacenamiento de fondo. https://github.com/bricaud/graphexp
fuente
Eche un vistazo a Graphistry , pueden manejar nodos y bordes de 1Mil.
fuente