Zwei mögliche Wege.
Eine ist, eine bessere Layoutfunktion zu verwenden, vielleicht shell_layout() oder circular_layout().
Das andere ist, die Struktur zu verstehen, die die Layoutfunktionen erzeugen, und Ihr Verständnis der Daten zu verwenden, um eine vernünftigere Visualisierung zu erzeugen. Diese Funktionen erzeugen ein Wörterbuch, das auf den Knoten mit Werten codiert ist, die Listen der Länge 2 sind. Der erste Eintrag gibt die x-Position des Knotens an, die zweite, die y.
Nehmen Sie dieses Beispiel, eine Grafik von Netzwerkverbindungen zwischen Büros.
pos=nx.spring_layout(G)
print pos
könnte jedoch so etwas wie
{'A': [1, 12], 'C': [5, 8], 'B': [4, 11], 'E': [8, 3], 'D': [8, 7], 'F': [6, 1]}
ergeben, ich weiß, dass da meine Daten citites stellt es Sinn macht, die Knoten an Stellen angezeigt werden, die ihre physischen Positionen darstellen, so dass ich stattdessen bauen sie meine eigenes Wörterbuch.
pos = {}
for node in G.nodes():
pos[node] = [G.node[node]["x"], G.node[node]["y"]]
Sie scheinen Ihre Daten gut im Griff zu haben. Verwenden Sie es zu Ihrem Vorteil. In Ihrem speziellen Fall scheint es, gibt es zwei Hauptkategorien, Agenten und Firmen. Vielleicht teilen Sie Ihre Grafikvisualisierung in 3 Spalten auf: Eine "Agentenzone" und eine "Randzone" und eine "feste" Zone. Iterieren durch die Knoten und weisen X- und Y-Werte zu, die die entsprechende Zone im Zick-Zack-Verfahren durchlaufen (die Randzone enthält keine Knoten, um die Verbindung zu verdeutlichen). Bei vielen Knoten können Daten immer noch ziemlich unscharf sein. Geben Sie den Knoten möglicherweise Y-Abstände basierend auf der Anzahl der Verbindungen. Fiedel mit Proportionalitäten und anderen Mustern und du solltest in der Lage sein, etwas zu erzeugen, das es wert ist, betrachtet zu werden. Holen Sie die Firma mit den wenigsten Agenten nach unten und platzieren Sie anschließend alle Agenten, die mit ihr verbunden sind, im unteren Bereich der Agentenzone. Dann gehe zur nächsten Firma, platziere alle damit verbundenen Agenten, die noch nicht platziert wurden, und so weiter. Setzen Sie jedes Unternehmen auf den mittleren y-Wert der Zone von Agenten, die es abbildet. Die Möglichkeiten sind endlos.
Related: http://stackoverflow.com/q/15667166/190597 – unutbu