如何在Mac上使用Python的dot绘制自动图形?

0 投票
2 回答
2499 浏览
提问于 2025-04-15 11:48

我正在用Python程序生成图表,现在需要把它们可视化。

我使用Tkinter作为图形界面来展示其他数据,我想在里面加一个小窗口,显示数据的图表。目前,我把数据保存在一个.dot文件里,然后打开graphviz来显示图表。但这样做显然不太方便。我需要把图表放到tk窗口里。

我考虑过从命令行使用graphviz,但总是遇到一个大家都知道的bug:

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

这个bug在Graphviz社区里似乎是个老问题:

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

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

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

所以,既然我不能使用命令行工具,我想知道有没有人知道直接在Python中绘制dot图的方法,而不使用命令行,或者做一些会导致同样错误的事情?

我是在Mac Leopard上编程,使用的是python 2.5.2。

2 个回答

1

快速在谷歌上搜索一下,可以找到http://code.google.com/p/pydot/这个链接。我还没试过,但看起来很不错。

2

我没有Mac电脑来测试这个,但NetworkX这个包里有一些方法,可以用来读取.dot文件,还可以用绘制图形,而且是通过matplotlib这个库来实现的。你可以把matplotlib画出来的图嵌入到Tk界面中(示例1, 示例2)。

撰写回答