你如何让networkx.graphviz_layout工作?

时间:2015-11-22 19:10:34

标签: python graphviz networkx

我正在尝试为使用networkx构建的图形计算布局;让我们调用图G。我使用Javascript实际渲染图形,所以我现在需要的是使用布局算法计算节点的位置。 (我不想使用像d3强制布局这样的Javascript工具,因为大型图形的计算需要一段时间,所以我宁愿做重型服务器端。)

这是一行代码,对我有用,可以实现成功的图表可视化:

layout = networkx.spring_layout(G)

然而,这个算法既慢又不漂亮。所以我想我会尝试使用Graphviz:

layout = networkx.graphviz_layout(G)

我在OSX中运行Python 3.4,所以我首先使用:

安装了Graphviz
brew install graphviz
pip install graphviz
pip install pydotplus

(我首先尝试安装pydot包而不是pydotplus,但似乎pydot包不支持Python 3.)

当我尝试拨打graphviz_layout时,我最终会:

AttributeError: 'NoneType' object has no attribute 'get_node'

由该行触发:

node=Q.get_node(pydot_node)

在nx_pydot.py中。我有点希望这是一个已知的错误,有人可以告诉我如何解决,但到目前为止我还没有找到任何东西。如果没有人知道一个简单的修复,我不会主动阻止人们推荐其他计算(但不一定渲染)支持大图的图形布局的Python包,虽然看起来我明确要求这样做是违法的......

0 个答案:

没有答案