Kann man hierarchische Graphen von networkx in python 3?

Ich versuche, display-ein Baum-graph meiner Klassen-Hierarchie mithilfe networkx. ich das alles grafisch dargestellt wird, richtig, und es zeigt feine. Aber als einen kreisförmigen Graphen mit kreuzenden Kanten, es ist eine Reine Hierarchie, und es scheint, ich sollte in der Lage sein, um es anzuzeigen als ein Baum.

Habe ich gegoogelt, diese umfassend, und jede angebotene Lösung umfasst die Verwendung pygraphviz... aber PyGraphviz funktioniert nicht mit Python 3 (Dokumentation aus der pygraphviz Website).

Hat sich schon jemand in der Lage, eine Baum-Diagramm-Anzeige in Python 3?

  • Mit networkx Sie sollten in der Lage sein zu verwenden DIGraph mit dem dot-layout. Sollte diese Anzeige einen Baum, graph.
  • Die Entwickler-version von pygraphviz funktioniert mit Python 3.
  • Sie könnten versuchen, mit dem spring-layout, networkx.spring_layout()
  • Ich habe versucht, spring-layout-was zeigt ist immer noch kreisförmig, mit überlappenden Kanten.
  • Ich habe eine Antwort, aber es wird nicht besonders schön Aussehen, wenn der Baum einige äste, die sehr "weit". Ich denke, das ist, wo eine Menge der Aufwand, pygraphviz passiert. Lassen Sie mich wissen, wenn es für Sie arbeitet. Wenn nicht, lassen Sie mich wissen, was sieht schlecht über Sie und ich werde sehen, ob es eine einfache Lösung.
  • Vielen Dank Joel! Ich werde versuchen diese heute Abend.
  • fantastisch! Aber ich wirklich brauchen die Knoten verbreitet wird, und ich versuche, herauszufinden, wo ein eingreifen in den code zu bekommen: wenn nextx eingestellt ist?
  • Meine Etiketten sind Klasse Namen, und Sie landen auf der jeweils anderen mit diesem code. Ich möchte Ihnen etwa das doppelte der aktuellen Breite. Ich habe das Spiel mit dx und andere Werte, und bin eine Menge ärger bekommen, dass das passiert. Jede raten, ist willkommen.
  • Ich denke das Thema ist zu haben, mehr zu tun mit der änderung der tatsächlichen Breite / Seitenverhältnis der erzeugten Abbildung, eher die Breite, die ich habe. Verdoppelung width aber Plotten mit dem gleichen Seitenverhältnis wird am Ende die gleiche scheinbare Breite im Ergebnis der seit es wird nur eine Skala die horizontale Länge entsprechend. Ich denke, es ist irgendwo in rcparams, aber ich nicht oft fiddle, damit Ihr googeln ist so gut wie meine.
  • in der Tat, ich kann nur die Größe ändern Sie das Fenster und Holen Sie das meiste, was ich brauche. Nochmals vielen Dank für den code: das ist großartig!
  • Wenn Sie "akzeptieren" der Antwort würde ich schätzen es. Auch Aric sagt, es pygraphviz scheint zu funktionieren in python 3. Aric sagt, dass der code in seiner Antwort, here funktioniert in python 3. Ich tun, python 2.7, also weiß nicht.
  • Ich habe versucht, den code von Aric Antwort, und es blies mich irgendwo in Pygraphviz.

InformationsquelleAutor NickDanger66 | 2015-04-12
Schreibe einen Kommentar