2010-02-20 15 views
5

Ich habe ein Tool zum Finden von Abhängigkeitsbeziehungen hinter einem Python-Projekt geschrieben. Es ist Gluttony. Ich betreibe es auf Plone, das Ergebnis ist beeindruckend. I-Ausgang das Diagramm mit NetworkX, und es sieht wie folgt aus: (! Gee Es sieht aus wie World of Goo)Wie man riesige Abhängigkeitsbeziehungen Diagramm von Plone mit Graphviz ausgeben?

Dependency diagram of Plone, output by Networkx http://python-gluttony.googlecode.com/files/plone_nx.png

ein Durcheinander! Ich habe Layout mit Networkx nicht behandelt. Deshalb ist es ein Durcheinander. Das Tool kann eine Graphviz-Formatdatei ausgeben. Ich habe versucht, das Diagramm mit Punktbefehl zu rendern. Ich benutze Befehl wie folgt aus:

dot -Kdot -Tpng -oplone plone.dot 

ich nach langer Laufzeit ein großes Bild bekam, aber das Ergebnis scheint falsch. Ich kann auf dem Ergebnisbild nichts sehen. Es sieht aus wie ein weißes Papier, nichts darauf. Was ist los mit dir? Ist das Diagramm zu groß zum Rendern? Was muss ich tun, um ein so komplexes Diagramm zu erstellen?

kann ich richtiges Ergebnis aus anderen kleinen Diagramm erhalten, wie diese: Dependency diagram of sprox http://python-gluttony.googlecode.com/files/sprox.png

Auch ein viel größeres Diagramm korrekt wiedergegeben werden können, lassen Sie sich das Diagramm von TurboGears2

sieht Ich denke, es soll Spaß machen um die Abhängigkeitsbeziehung eines solchen Monsterprojekts wie Plone zu sehen. Auch ist es nützlich für die Forschung. Leider kann ich Diagramm nicht korrekt ausgeben. Kalt jemand mir helfen? Vielen Dank.

Hier ist die Graphviz-Format-Datei von Plone: ​​ plone.dot

+0

Wenn das Bild sehr groß ist, könnte Ihr Bildbetrachter Probleme haben. Ich weiß, dass Crome und IE keine riesigen GraphViz-Bilder zeigen konnten, die ich vor ein paar Monaten gerendert habe. –

Antwort

1

Wenn Sie ein Bild erzeugen kann: Graphviz neigt riesige Dateien zu erstellen. Zoom in.

Für mich stürzt graphviz regelmäßig auf Ihrer Datei ab. Es scheint auf 32 kPixel pro Seite maximal zu sein und Ihre Datei wäre größer, was zu einem Integer-Überlauf führt.

Versuchen Sie, die Datei in mehrere Untergraphen aufzuteilen (Zusätzliche Punkte für die Verwendung von Graphalgorithmen zum Auffinden von guten Trennpunkten).

Update:

Ich warf einen schnellen Skript split dot files auf. Es ist nicht perfekt, aber es funktioniert vernünftig.