Ich habe es mit einer Menge von Graphen mittlerer Ordnung (einige tausend Knoten, einige hunderttausend Kanten) zu tun, die aber auch eine zeitliche Komponente haben.
Das bedeutet, dass bestimmte Knoten und/oder Kanten nur während bestimmter Zeitintervalle aktiv sind.
Im Moment handhabe ich diese zeitliche Natur "manuell", indem ich den Graphen im Grunde zu einem bestimmten Zeitpunkt abfrage und ihn bei Bedarf über yEd rendere .
ABER wenn Sie versuchen, die zeitliche Entwicklung des Netzwerks darzustellen, "springen" die Knoten herum, weil ihre Position nicht während der gesamten Visualisierung festgelegt ist.
Ich habe versucht, das gesamte Netzwerk zu zeichnen (den zeitlichen Aspekt zu ignorieren), dies zu visualisieren, um die Position der Knoten zu fixieren, und dann jede Kante in Abhängigkeit von der zeitlichen Dimension mit einigem Erfolg zu aktivieren / deaktivieren. Dies ist jedoch ein Hack und es erfordert einiges an Aufwand, all diese Informationen zusammenzustellen. Ich frage mich, ob es da draußen schon etwas gibt, das sich darum kümmert (?)
Kennt jemand eine ähnliche (wie yEd) Software zur Visualisierung dynamischer Netzwerke?
Sie könnten das Modell „Network Import Example“ von Netlogo verwenden und es mit Code aus dem „Network Example“ anpassen (das ein animiertes Diagramm mit herumfliegenden Links zeigt). Beide Modelle sind in der Modellbibliothek vorhanden (= vorinstalliert).
Vielleicht ist es nicht Ihr Anwendungsfall und vielleicht ist es zu viel Aufwand, die neue Programmiersprache zu lernen. Vielleicht müssen Sie den Datumsbereich mit einem Datepicker angeben, und das könnte in Netlogo ziemlich kompliziert sein.... Nur um zu sagen: Eine funktionierende Lösung nach Ihren Anforderungen würde wahrscheinlich mehr Arbeit verursachen als erwartet.
"Netzwerkimportbeispiel" nimmt eine Nodelist und eine Edgelist beide als .txt-Dateien auf. Aber ich weiß nicht, wie ich die Sequenz zum Erstellen / Löschen von Links importieren soll. Die Nodelist-Datei sieht beispielsweise so aus:
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
und die Edgelist so:
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
Vielleicht sollten Sie Python und das Paket verwenden networkx
,
Sie haben die volle Kontrolle über den zeitlichen Aspekt und können problemlos mit jeder Art von Daten umgehen.
Viele Beispiele sind verfügbar, und Sie können eine sehr effiziente Hilfe von der Stackoverflow- Community erhalten.
A_A