2016-12-08 16 views
1

"Natural Language Processing with Python"( "www.nltk.org/book")という本を使用して自分自身にPythonとNLTKを教えています。Python NetworkXエラー:モジュール 'networkx.drawing'に 'graphviz_layout'属性がありません

私はNetworkXの第4章第4部の8に固執しています。私は例4.15を実行しようとすると、それはグラフを描画する必要がありますが、その代わり、私は、次のエラーメッセージが出ます:

AttributeError: module 'networkx.drawing' has no attribute 'graphviz_layout'

を犯人コード行は、ここで

>>> 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) 

ように見えるから借りコード簡略化されています

>>> 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' 
>>> 

「networkx.github.io/documentation/networkx-1.10/tutorial/tutorial.htmlは、」あなたはこの問題を解決する方法を私にしてください教えてください。

私はWindows 7のホームプレミアムで、Python 3.5、Graphviz2.38(およびPATH環境変数にあるディレクトリ)とNetworkX 1.11を使用しています。

私は何度もグーグルで行きましたが、私にはうってつけのものは見つかりませんでした。私はNetworkXとgraphvizのチュートリアルに行きましたが、それも役に立たなかった。ここで

が、私は助けにはならなかったことが判明何:

「stackoverflow.com/questions/39411102/attributeerror-module-object-has-no-attribute-graphviz-layout-with-networkx」(回答コード私に同じエラーメッセージを与えました)

"python.thenaiveapproach.com/buggy-module-installation-networkx-pygraphviz/"(エラーメッセージごとに、私がインストールできないpygraphvizが必要です.pipはVisual C++が必要です実行するには、私は自分の仕事のコンピュータにインストールすることはできません)

"codedump.io/share/c3aAbCneu2oA/1/attributeerror-39module39-object-has-no-attribute-39gra phvizlayout39-と-networkx-111" (もpygraphvizが必要 - 上記参照)

多くのおかげで、 ジェニファー

+0

pygraphviz(およびgraphviz)がインストールされていないと、networkxはこのエンジンでグラフを描くことができません。 'draw_networkx'を含め、他のバックエンドがあなたの目的に十分であるかどうかを確認することができます。 – Bonlenfum

+0

[networkx drawing](http://networkx.readthedocs.io/en/networkx-1.11/reference/drawing.html)ドキュメントのオープニング段落にも注意してください。これは、専用の描画ツールを使用してグラフを描画することを示唆しています。 1つの方法は、ファイルを関連する形式で保存し、別のツールを使用して図面を外部で実行することです。 – Bonlenfum

+0

これはうまくいった、ありがとう! >>> plt.savefig( "simple_path.png") >>> plt.show()ここで私は何をしたのですか?>>> nx.draw(G) >>> plt.savefig –

答えて

1

答えは礼儀@Bonlenfumとコードであるhttps://networkx.github.io/documentation/networkx-1.10/examples/drawing/simple_path.html

からここで働いていたコードがあります:

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) 

>>> 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帳から調整済みのコードです

関連する問題