Ich habe Probleme mit großen Graph Visualisierung in Python und networkx. Der Graph ist wünschen zu visualisieren ist gerichtet, und hat eine Kante und Vertex-Set-Größe von 215.000 Aus der Dokumentation (die auf der obersten Seite verknüpft ist) ist klar, dass networkx unterstützt Plotten mit matplotlib
und GraphViz. In matplotlib
und NetworkX der Zeichnung erfolgt wie folgt:große Graph Visualisierung mit Python und Netzwerk x
import
networkx as nx
import matplotlib.pyplot as plt
#Let g be a graph that I created
nx.draw(g)
ich einen Speicherfehler nach nx.draw(g)
bekommen, danach würden Sie normalerweise plt.show()
oder plt tun [some_function], um die Datei in einem Format für eine effiziente zu speichern und so weiter. .
Als nächstes habe ich GraphViz versucht. Vom wikipedia page das dot
Format wird für gerichtete Graphen verwendet und habe ich eine Punkt-Datei:
nx.write_dot(g, "g.dot")
Das gut gearbeitet und ich hatte eine Punktdatei in meinem aktuellen Verzeichnis, das 12 Megabyte. Weiter lief ich das dot
Programm (Teil graphviz eine Postscript-Datei zu erstellen):
dot -Tps g.dot -o g.ps
Das ist mein Computer verlangsamt, läuft ein paar Minuten und dann Killed
im Terminal angezeigt werden soll. So konnte es niemals ausgeführt werden ... Beim Lesen der Dokumentation für graphviz scheint es, dass nur ungerichtete Graphen für große Graphvisualisierungen unterstützt wurden.
Frage: Mit diesen beiden erfolglosen Versuchen, kann mir jemand zeigen, wie meine große Grafik mit Python und NetworkX mit über 215.000 Ecken und 215.000 Kanten sichtbar zu machen? Ich vermute, dass ich wie bei Graphviz in ein Zwischenformat ausgeben muss (obwohl dies nicht so schwer sein sollte, wird es nicht so einfach sein wie eine eingebaute Funktion) und dann ein anderes Werkzeug verwenden, um das Zwischenformat zu lesen und dann eine Visualisierung auszugeben .
Also, ich bin auf der Suche nach folgenden Kriterien:
- Output Graph von NetworkX in ein Zwischenformat
- Mit neuen Paket/Software/Tool (idealerweise Python-interactive) Zwischenformat lesen und visualisieren, die große graph
Wenn Sie weitere Informationen benötigen, lassen Sie es mich wissen!
Stellen Sie sich vor, Sie haben ein PostScript-Bild dieses großen Graphen erstellt. Was würdest du damit machen? Angenommen, Sie haben 10 Sekunden lang jeden Knoten betrachtet. Sie würden fast 25 Tage brauchen, um den gesamten Graphen zu inspizieren. Es scheint mir eher, als das Ganze (als ein PostScript-Bild) anzuzeigen, dass Sie einen Weg brauchen, um auf interessierende Teilgraphen "hineinzuzoomen". – unutbu
Ich möchte eine Vorstellung davon bekommen, wie meine Grafik aussieht. Nachdem ich eine Idee habe, werde ich mich auf Subgraphen, Cliquen, Communities konzentrieren ... – CodeKingPlusPlus