2009-05-24 7 views
0

Ich produziere Graphen in einem Python-Programm, und jetzt muss ich sie visualisieren.Wie zeichne ich automatische Graphen mit Punkt in Python auf einem Mac?

Ich verwende Tkinter als GUI, um alle anderen Daten zu visualisieren, und ich würde gerne ein kleines Unterfenster mit dem Diagramm der Daten haben. Im Moment habe ich die Daten in einer .dot-Datei dargestellt. Und dann halte ich graphviz offen, was den Graphen zeigt. Aber das ist natürlich suboptimal. Ich muss den Graphen in das tk-Fenster bringen.

Ich dachte über graphviz von der Kommandozeile, aber ich immer in die gleichen bekannten Fehler laufen:

Desktop ibook$ dot -Tpng -O 1.dot 
dyld: lazy symbol binding failed: Symbol not found: _pixman_image_create_bits 
    Referenced from: /usr/local/lib/graphviz/libgvplugin_pango.5.dylib 
    Expected in: flat namespace 

dyld: Symbol not found: _pixman_image_create_bits 
    Referenced from: /usr/local/lib/graphviz/libgvplugin_pango.5.dylib 
    Expected in: flat namespace 

Trace/BPT trap 

Der Fehler scheint auch in der Graphviz Gemeinschaft bekannt zu sein:

http://www.graphviz.org/bugs/b1479.html

http://www.graphviz.org/bugs/b1488.html

http://www.graphviz.org/bugs/b1498.html

Da es so aussieht, als könnte ich das Befehlszeilendienstprogramm nicht verwenden, frage ich mich, ob jemand einen direkten Weg zum Zeichnen eines Punktdiagramms in Python kennt, ohne die Befehlszeile zu verwenden oder etwas zu tun, das denselben Fehler verursacht.

Ich programmiere auf einem Mac Leopard, Python 2.5.2

+0

Der Fehler wurde in der neuen Version von Graphviz behoben. –

Antwort

2

Ich habe nicht einen Mac zu testen, aber das NetworkX Paket beinhaltet Methoden read .dot files und draw graphsmatplotlib verwenden. Sie können eine Matplotlib-Figur in Tk (example 1, example 2) einbetten.

+0

Sehr interessant, danke. Ein Weg, der es wert ist, mehr erforscht zu werden. Ich werde es tun und dann sehen, ob es das Problem löst. Das Hauptproblem besteht darin, dass die erzeugte Graphvisualisierung sinnvoll sein muss. In Punkt habe ich es schließlich geschafft, es gut aussehen zu lassen. Ich werde sehen müssen, wie man es in Netoworkx macht. Und ja, ich benutze Matplotlib –

Verwandte Themen