首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python NetworkX错误:模块'networkx.drawing‘没有属性'graphviz_layout’

Python NetworkX错误:模块'networkx.drawing‘没有属性'graphviz_layout’
EN

Stack Overflow用户
提问于 2016-12-08 19:29:57
回答 1查看 3.6K关注 0票数 1

我用“自然语言处理与Python”("www.nltk.org/ book ")一书教自己Python和NLTK。

我被困在第4章第4节关于NetworkX的第8部分。当我试图运行示例4.15时,它应该绘制一个图形,但是我得到了以下错误消息:

AttributeError:模块“networkx.drawing”没有属性“graphviz_layout”

罪魁祸首代码行似乎是

代码语言:javascript
复制
>>> nx.draw_graphviz(graph,
    node_size = [16 * graph.degree(n) for n in graph],
    node_color = [graph.depth[n] for n in graph],
    with_labels = False)

下面是从"networkx.github.io/documentation/networkx-1.10/tutorial/tutorial.html“借用的简化代码

代码语言:javascript
复制
>>> import networkx as nx
>>> import matplotlib.pyplot as plt
>>> G=nx.Graph()
>>> G.add_node(1)
>>> G.add_nodes_from([2,3])
>>> nx.draw_graphviz(G)  
Traceback (most recent call last):
  File "<pyshell#92>", line 1, in <module>
    nx.draw_graphviz(G)
  File "C:\Users\Cheese\AppData\Local\Programs\Python\Python35-32\lib\site-packages\networkx\drawing\nx_pylab.py", line 984, in draw_graphviz
    pos = nx.drawing.graphviz_layout(G, prog)
AttributeError: module 'networkx.drawing' has no attribute 'graphviz_layout'
>>> 

你能告诉我怎么修这个吗?

我使用Python3.5、Graphviz2.38 (以及它的目录在PATH环境变量中)和NetworkX 1.11在Windows7home高级版上。

我已经搜索过很多次了,也找不到对我有用的东西。我阅读了NetworkX和图形教程,这也没有帮助。

以下是我发现的毫无帮助的东西:

"stackoverflow.com/questions/39411102/attributeerror-module-object-has-no-attribute-graphviz-layout-with-networkx“(应答代码给了我同样的错误信息)

"python.thenaiveapproach.com/buggy-module-installation-networkx-pygraphviz/“(每条错误消息,需要pygraphviz,我无法安装它)。pip说它需要运行VisualC++,而我无法在我的工作计算机上安装它。)

"codedump.io/share/c3aAbCneu2oA/1/attributeerror-39module39-object-has-no-attribute-39graphvizlayout39-with-networkx-111“(还需要pygraphviz -见上文)

非常感谢,詹妮弗

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-09 17:32:42

答案是礼貌@Bonlenfum和来自path.html的代码

下面是起作用的代码:

代码语言:javascript
复制
>>> import networkx as nx
>>> import matplotlib.pyplot as plt
>>> G=nx.Graph()
>>> G.add_node(1)
>>> G.add_nodes_from([2,3])
>>> nx.draw(G)
>>> plt.savefig("simple_path.png")
>>> plt.show()

以下是NLTK书中的调整代码:

代码语言:javascript
复制
try:
    import matplotlib.pyplot as plt
except:
    raise

def graph_draw(graph):
    nx.draw(graph,
         node_size = [16 * graph.degree(n) for n in graph],
         node_color = [graph.depth[n] for n in graph],
         with_labels = False)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41047362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档