Visualización de red dinámica

Estoy tratando con un conjunto de gráficos de orden moderado (unos pocos miles de nodos, unos cientos de miles de aristas) que, sin embargo, también tienen un componente temporal.

Esto significa que ciertos nodos y/o aristas están activos solo durante intervalos de tiempo específicos.

Por el momento, estoy manejando esta naturaleza temporal "manualmente" básicamente consultando el gráfico en una instancia de tiempo específica y representándolo a través de yEd cuando tengo que hacerlo.

PERO , cuando intenta representar la evolución temporal de la red, los nodos "saltan" porque su posición no es fija a lo largo de la visualización.

He intentado trazar la red completa (ignorando el aspecto temporal), visualizar eso para fijar la posición de los nodos y luego habilitar/deshabilitar cada borde según la dimensión temporal con cierto éxito. Sin embargo, esto es un truco y requiere bastante esfuerzo reunir toda esta información. Me pregunto si ya hay algo por ahí que se encargue de esto (?)

¿Alguien sabe de algún software similar (a yEd) para la visualización de redes dinámicas?

Respuestas (2)

Puede usar el modelo "Ejemplo de importación de red" de Netlogo y personalizarlo con el código del "Ejemplo de red" (que muestra un gráfico animado con enlaces dando vueltas). Ambos modelos están presentes en la biblioteca de modelos (= preinstalados).

Tal vez no sea su caso de uso y tal vez sea demasiado esfuerzo aprender el nuevo lenguaje de programación. Tal vez necesite especificar el rango de fechas con un selector de fechas, y eso podría ser bastante complicado en Netlogo... Solo digo: una solución que funcione de acuerdo con sus requisitos probablemente resulte en más trabajo del esperado.

ingrese la descripción de la imagen aquí

El "Ejemplo de importación de red" incluye una lista de nodos y una lista de bordes como archivos .txt. Pero no sé cómo importar la secuencia de creación/eliminación de enlaces. El archivo de lista de nodos, por ejemplo, se ve así:

1    1.2    red
2    1.0    blue
3    1.5    yellow
4    2      green
5    1.8    orange
6    1.4    red
7    2      blue
8    1.5    yellow
9    1      green
10   1.2    orange

y la lista de bordes así:

1  4  0.8
2  3  1.0
2  5  3
2  7  2.5
2  8  1.3
2  10 2.2
3  9  2.3
5  6  2.8
6  5  1.2
6  9  0.3
7  2  1.1
8  1  2.6
9  8  2.1
10 7  0.2
Gracias por su respuesta. He usado NetLogo antes, pero lo que estoy tratando es algo como esto (pero más complejo). Por lo tanto, el algoritmo de diseño de gráficos es una característica esencial de la pieza de software que estoy buscando. El diseño circular no es muy útil en este caso particular que estoy tratando.

Tal vez deberías usar python y el paquete networkx,

Puede obtener el control total del aspecto temporal y manejar fácilmente cualquier tipo de datos.

Hay muchos ejemplos disponibles y puede obtener una ayuda muy eficiente de la comunidad de stackoverflow .

Gracias, así es como lo estoy manejando en este momento. Arreglando el diseño a través de graphviz y luego trazando los bordes. Pero definitivamente sería un resultado más presentable a través de un software diseñado específicamente para la visualización de gráficos.