5

我编写了一个工具来查找 Python 项目背后的依赖关系。这是暴食。我在 Plone 上运行它,结果令人印象深刻。我用 Networkx 输出图表,它看起来像这样:

Plone的依赖图,Networkx输出
(来源:googlecode.com

(哎呀!它看起来像粘糊糊的世界!)

一团糟!我没有使用 Networkx 处理布局。这就是为什么它是一团糟。该工具可以输出 Graphviz 格式的文件。我尝试使用 dot 命令渲染图表。我使用这样的命令:

dot -Kdot -Tpng -oplone plone.dot

长时间运行后我得到了一个巨大的图像,但结果似乎错误。我在结果图像上看不到任何东西。它看起来像一张白纸,上面什么都没有。怎么了?图表是否太大而无法渲染?渲染这么大的复杂图表应该怎么做?

我可以从其他小图表中得到正确的结果,比如这个:( 来源:googlecode.comsprox的依赖图

再大的图也能正确渲染,看TurboGears2的图

我觉得看到Plone这样的怪物项目的依赖关系应该很有趣。对研究也很有用。不幸的是,我无法正确输出图表。冷,有人帮帮我吗?谢谢。

这是 Plone 的 Graphviz 格式文件: plone.dot

4

2 回答 2

2

该命令dot plone.dot -Tsvg > plone.svg呈现此可缩放矢量图形:

替代文字 http://dl.dropbox.com/u/138632/plone.svg

我可以在Inkscape中打开.svg 文件并放大到 100%。

于 2010-02-21T12:52:46.847 回答
1

如果您可以生成图像:Graphviz 倾向于创建巨大的文件。放大。

对我来说,graphviz 经常在你的文件上崩溃。似乎每边最多 32 kPixels,您的文件会更大,导致整数溢出。

尝试将文件拆分为多个子图(使用图算法寻找良好分离点的附加点)。

更新:

我抛出了一个快速脚本来拆分点文件。它并不完美,但它的工作原理是合理的。

于 2010-02-20T18:09:41.867 回答