【发布时间】:2017-01-17 13:50:28
【问题描述】:
我正在尝试使用 networkx 1.11 绘制一些 DAG,但遇到了一些错误,这是测试:
import networkx as nx
print nx.__version__
G = nx.DiGraph()
G.add_node(1,level=1)
G.add_node(2,level=2)
G.add_node(3,level=2)
G.add_node(4,level=3)
G.add_edge(1,2)
G.add_edge(1,3)
G.add_edge(2,4)
import pylab as plt
nx.draw_graphviz(G, node_size=1600, cmap=plt.cm.Blues,
node_color=range(len(G)),
prog='dot')
plt.show()
这是回溯:
Traceback (most recent call last):
File "D:\sources\personal\python\framework\stackoverflow\test_dfs.py", line 69, in <module>
prog='dot')
File "d:\virtual_envs\py2711\lib\site-packages\networkx\drawing\nx_pylab.py", line 984, in draw_graphviz
pos = nx.drawing.graphviz_layout(G, prog)
AttributeError: 'module' object has no attribute 'graphviz_layout'
我正在使用 python 2.7.11 x64、networkx 1.11,并且我已经安装了 graphviz-2.38,在 PATH 中提供了 dot。我错过了什么?
一旦它起作用,我怎么能用节点绘制图形:
- 使用白色背景色
- 里面有标签
- 有方向箭头
- 自动或手动安排得很好
类似于下图的东西
正如您在该图像中看到的那样,节点对齐得非常好
【问题讨论】:
-
使用
nx.graphviz_layout或nx.drawing.nx_agraph.graphviz_layout。 -
@ValentinLorentz 尝试
nx.graphviz_layout时,我会得到AttributeError: 'module' object has no attribute 'graphviz_layout',但使用nx.drawing.nx_agraph.graphviz_layout有点效果。尽管nx.graphviz_layout(G, prog='dot') nor nx.drawing.nx_agraph.graphviz_layout(G)都没有显示任何内容。如果您可以提供一个 mcve 示例,我可以验证您的答案,谢谢! -
如何让图表具有该主题,并在节点中添加标签?
标签: python python-2.7 networkx