如何在Python上生成DOT语言输出

时间:2012-01-30 06:24:59

标签: python windows pygraphviz

我正在尝试从twitter收集数据并通过Graphviz将其可视化。我已经安装了Graphviz,目前我正在尝试通过Python生成DOT语言输出,我遇到了无法从我的代码获得任何响应的问题。我想知道我的代码是否生成了DOT文件,如果是,我的DOT文件在哪里?以下是我的代码。

OUT ="Paul_search_results.dot"
try:
    nx.drawing.write_dot(g, OUT)
except ImportError, e:
    dot = ['"%s" -> "&s" [tweet_id=%s]'% (n1, n2, g[n1][n2]['tweet_id'])\
           for n1, n2 in g.edges()]
    f = open(OUT, 'w')
    f.write('strict digraph {\n%s\n}' % (';\n'.join(dot),))
    f.close()

我正在使用Windows,我知道我不能easy_install pygraphviz,但上面的代码应该做同样的事情。根据这本书,我应该使用上面的代码手头有DOT语言输出。但是我的代码没有收到任何回复。

我已经从twitter收集了信息,准备好了节点和边缘。

>>> g.number_of_nodes()
235
>>> g.number_of_edges()
202

有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:1)

如果nx.drawing.write_dot()f.write()将任何输出写入Paul_search_results.dot,该文件将位于“当前工作目录”中。如果您只需双击Explorer.exe中的文件,我就不知道Windows会将您当前的工作目录设置为什么 - 非常值得您花时间启动cmd.exe命令提示符,自己执行cd到你想要包含输出的目录,手动运行命令,然后查看控制台输出以查看是否有任何错误消息。

答案 1 :(得分:1)

您的文件存储在Paul_search_results.dot中。如果找不到该查找,请更改名称以包含完整路径,以便将其放在所需的位置。

其余代码看起来正确但很难在不看数据的情况下判断。您设置f=sys.stdout以查看正在生成的输出。

仅供参考,在http://interactive.blockdiag.com

有一个Graphviz的在线版本

祝你的项目好运。