Visualizando un gráfico con un millón de vértices

17

¿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?

Cici
fuente
puedes probar Graphviz ... no estoy seguro si escala hasta millones de vértices ...
Debasis
Esperemos que una respuesta a esta pregunta pueda tocar cómo se hicieron gráficos como estos: medium.com/i-data/…
shadowtalker
Hola @Cici, por lo general, se desaconsejan las preguntas sobre las herramientas recomendadas en este y otros sitios de SE, ya que solo invitan a mucha opinión.
Sean Owen

Respuestas:

19

También sugiero Gephisoftware ( https://gephi.github.io ), que parece ser bastante poderoso. Puede encontrar información adicional sobre el uso Gephicon redes grandes aquí y, más generalmente, aquí . Cytoscape( http://www.cytoscape.org ) es una alternativa a Gephi, 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 igraphcolecció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 .

Aleksandr Blekh
fuente
8

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"

Hombre espacial
fuente
8

Creo que eso Gephipodrí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, en GraphVizél es posible utilizar coordenadas precalculadas para facilitar los cálculos.

Traté de encontrar ejemplos del mundo real de uso GraphVizcon grandes gráficos, pero no tuve éxito. Aunque encontré una discusión similar sobre la ciencia computacional .

Sobach
fuente
4

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.

Cici
fuente
2

PajekXXL está diseñado para manejar redes enormes. Pero Pajek también es una especie de programa extraño con una interfaz poco intuitiva.

Shadowtalker
fuente
2

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

Sandeep Kumar
fuente
De Verdad? para mí comienza a ahogarse cuando intento mostrar más de 100 vértices
BrDaHa
La velocidad depende principalmente de la base de datos de back-end y la capacidad informática. Graphexp es solo interfaz de usuario.
Sandeep Kumar
Me doy cuenta de eso, pero con "estrangulador" quiero decir que la frecuencia de actualización se reduciría a 1-2 fps al animar los nodos que aparecen en pantalla. Puede ser útil tener en cuenta que esto está en una versión reciente de Safari
BrDaHa
0

Eche un vistazo a Graphistry , pueden manejar nodos y bordes de 1Mil.

Scott
fuente
Sí, Graphistry es la única herramienta visual interactiva para gráficos grandes porque se ejecuta de extremo a extremo en GPU para usted.
Leo Meyerovich