Visualisierung eines Diagramms mit einer Million Scheitelpunkten

17

Was ist das beste Werkzeug, um ein Diagramm mit 1000000 Eckpunkten zu visualisieren (die Eckpunkte und Kanten zu zeichnen)? Es gibt ungefähr 50000 Kanten in der Grafik. Und ich kann die Position einzelner Eckpunkte und Kanten berechnen.

Ich denke darüber nach, ein Programm zu schreiben, um ein SVG zu generieren. Irgendwelche anderen Vorschläge?

Cici
quelle
Sie können versuchen, Graphviz ... nicht sicher, ob es auf Millionen von Eckpunkten
skaliert
Hoffentlich kann eine Antwort auf diese Frage einen Hinweis darauf
geben,
Hallo @Cici, normalerweise wird von Fragen zu empfohlenen Tools auf dieser und anderen SE-Sites abgeraten, da sie nur viel Meinung einladen.
Sean Owen

Antworten:

19

Ich schlage auch GephiSoftware vor ( https://gephi.github.io ), die ziemlich mächtig zu sein scheint. Einige zusätzliche Informationen zur Verwendung Gephiin großen Netzwerken finden Sie hier und allgemein hier . Cytoscape( http://www.cytoscape.org ) ist eine Alternative zu Gephieiner anderen beliebten Plattform für komplexe Netzwerkanalysen und -visualisierungen.

Wenn Sie programmgesteuert (einschließlich Visualisierung) in R, Python oder C / C ++ mit Netzwerken arbeiten möchten, können Sie die igraphSammlung von Bibliotheken überprüfen . Apropos R: Die folgenden Blogbeiträge könnten für Sie interessant sein: Verwendung von R mit Cytoscape ( http://www.vesnam.com/Rblog/viznets1 ) und Verwendung von R mit Gephi ( http://www.vesnam.com/ Rblog / viznets2 ).

Auf den folgenden Seiten finden Sie umfangreiche Listen mit Netzwerkanalyse- und Visualisierungssoftware , einschließlich Vergleichs- und Überprüfungssoftware: 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
quelle
8

https://gephi.github.io/ sagt, dass es eine Million Kanten verarbeiten kann. Wenn Ihr Diagramm 1000000 Eckpunkte und nur 50000 Kanten hat, haben die meisten Ihrer Eckpunkte ohnehin keine Kanten.

Tatsächlich ist die Gephi-Spezifikation das Doppelte Ihres Beispiels: "Netzwerke mit bis zu 50.000 Knoten und 1.000.000 Kanten".

Raumfahrer
quelle
8

Ich denke, dass Gephimit mangelndem Arbeitsspeicher Probleme konfrontiert sein könnten, benötigen Sie mindestens 8 GB RAM. Obwohl die Anzahl der Kanten nicht sehr groß ist.

Möglicherweise wäre das geeignetere Werkzeug in diesem Fall GraphViz. Es ist ein Befehlszeilen-Tool für Netzwerkvisualisierungen, und es ist vermutlich toleranter gegenüber der Diagrammgröße. Darüber hinaus ist es, wie ich mich erinnere, GraphVizmöglich, vorberechnete Koordinaten zu verwenden, um Berechnungen zu erleichtern.

Ich habe versucht, Beispiele für die Verwendung GraphVizin großen Diagrammen aus der Praxis zu finden, aber es gelang mir nicht. Ich fand jedoch eine ähnliche Diskussion über Computational Science .

Sobach
quelle
4

Berichterstattung: Am Ende habe ich Graphml codiert und yEd für die Visualisierung verwendet (nur weil ich mit dieser Kombination vertraut bin. Ich wette, Gephi oder Graphviz funktionieren gut und sind möglicherweise sogar besser). Da ich die Position aller Knoten berechnet habe, war der Speicher kein so großes Problem. Das Codieren von Graphml ist im Vergleich zum Codieren von Svg etwas einfacher, da ich die Platzierung von Kanten nicht explizit angeben muss.

Cici
quelle
2

PajekXXL wurde entwickelt, um enorme Netzwerke zu verwalten. Pajek ist aber auch eine Art bizarres Programm mit einer nicht intuitiven Oberfläche.

Shadowtalker
quelle
2

Ich würde empfehlen, Graphexp zu verwenden. Gephi ist in hohem Maße vom RAM Ihres Computers abhängig, der offensichtlich begrenzt ist. Graphexp hingegen zeigt nur eine begrenzte Anzahl von Knoten an, über die Sie zu anderen Knoten navigieren können. Ich habe ein Diagramm mit 700 Millionen Eckpunkten mit Graphexp als Benutzeroberfläche und Janusgraph mit HBase als Back-End-Speicher visualisiert. https://github.com/bricaud/graphexp

Sandeep Kumar
quelle
"Ja wirklich?" für mich beginnt es zu ersticken, wenn ich versuche, mehr als 100 Eckpunkte zu zeigen
BrDaHa
Die Geschwindigkeit hängt hauptsächlich von der Back-End-Datenbank und der Rechenkapazität ab. Graphexp ist nur UI.
Sandeep Kumar
Ich verstehe das, aber mit "Choke" meine ich, dass die Aktualisierungsrate auf 1-2 fps sinken würde, wenn die Knoten animiert werden, die auf dem Bildschirm erscheinen. Es kann hilfreich sein, darauf hinzuweisen, dass es sich um eine aktuelle Version von Safari handelt
BrDaHa,
0

Werfen Sie einen Blick auf Graphistry , sie können Knoten und Kanten mit einer Länge von 1 Millimetern verarbeiten.

Scott
quelle
Ja, Graphistry ist das einzige interaktive visuelle Tool für große Grafiken, da es für Sie durchgängig auf GPUs ausgeführt wird.
Leo Meyerovich