2016-04-07 8 views
1

Ich habe einen gerichteten ausgeglichenen Baum in meinem Code generiert und ich möchte es visualisieren mit .draw() aber Einbeziehung die topologischen Informationen. Ich dachte, es könnte eine Möglichkeit der Verwendung von bestehenden .topological_sort sein() zusammen mit ihm -durch ‚pos‘ Attribut maybe-, die ich noch nicht entdecken haben. Hat jemand sie zusammen benutzt?Wie kann ich ‚nx.draw()‘ zusammen mit ‚nx.topological_sort()‘

Antwort

0

Da Sie einen Baum haben, können Sie 'dot' von graphvizvia networkx verwenden Sie das Layout (das heißt der Knoten pos) zu erzeugen.

Dot erzeugt ein hierarchisches Layout, bei dem die Wurzel (n) des Baums oben und Zweige und Blätter auf niedrigeren Ebenen (oder anstelle von oben nach unten, produce a left-right layout) gesetzt werden.

+0

Ich habe Ihren vorgeschlagenen Weg gefolgt, nachdem ich die Fragen gestellt habe. Allerdings stieß ich diesmal auf Probleme bei der Anwendung der ** graphhiz ** -Befehle. Zum Beispiel habe ich write.dot als _nx.drawing.nx_agraph.write_dot (dot_filename) _; aber ich habe folgende ** ImportError: ('erfordert pygraphviz', 'http://pygraphviz.github.io/')**. Ich glaube immer noch, _graphiz_ ist das Paket, das ich brauche, aber es gibt eine Menge Probleme, es in meiner Maschine auf meinem Weg zu verwenden. – Ozgu

+0

Wenn Sie auf einem Debian-basierten Betriebssystem arbeiten, versuchen Sie 'sudo apt-get install graphviz', gefolgt von' sudo pip install pygraphviz' ODER 'sudo apt-get install python-pygraphviz'. Sie müssen nicht zuerst als 'Punkt' speichern, Sie können 'draw_graphviz' direkt aufrufen, siehe https://networkx.github.io/documentation/latest/reference/generated/networkx.drawing.nx_pylab.draw_graphviz.html# networkx.drawing.nx_pylab.draw_graphviz oder https://networkx.github.io/documentation/latest/reference/generated/networkx.drawing.nx_agraph.pygraphviz_layout.html#networkx.drawing.nx_agraph.pygraphviz_layout –

Verwandte Themen