2016-12-08 2 views
1

"Natural Language Processing with Python"("www.nltk.org/book") 책을 사용하여 Python과 NLTK를 직접 가르칩니다.Python NetworkX 오류 : 모듈 'networkx.drawing'에 'graphviz_layout'속성이 없습니다.

NetworkX의 4 장의 4 부 8에 붙어 있습니다. 범인 코드 라인이 나타납니다

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) 

단순화 코드에서 차용 될 : 나는 예를 들어 4.15을 실행하려고하면, 그것은 그래프를 그릴해야하지만, 대신에 나는 다음과 같은 오류 메시지가 "networkx.github.io/documentation/networkx-1.10/tutorial/tutorial.html"

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

당신이 어떻게 좀 해결하는 방법을 말해 줄래?

저는 파이썬 3.5, Graphviz2.38 (그리고이 디렉토리가 PATH 환경 변수에 있음) 및 NetworkX 1.11을 사용하여 Windows 7 홈 프리미엄을 사용 중입니다.

나는 여러 번 인터넷 검색을하고 나를 위해 아무것도 찾을 수 없습니다. 나는 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 : https://networkx.github.io/documentation/networkx-1.10/examples/drawing/simple_path.html

여기 근무 코드의에서

많은 감사, 제니퍼

+0

pygraphviz (및 graphviz)가 설치되어 있지 않으면 networkx는이 엔진으로 그래프를 그릴 수 없습니다. 'draw_networkx'를 포함하여 다른 백엔드가 당신의 목적에 충분한 지 확인할 수 있습니다. – Bonlenfum

+0

[networkx drawing] (http://networkx.readthedocs.io/en/networkx-1.11/reference/drawing.html) 문서의 시작 단락을 참고하십시오. 이는 그래프를 그리기위한 전용 플로팅 도구를 사용하는 것이 좋습니다. 한 가지 방법은 파일을 관련 형식으로 저장 한 다음 다른 도구를 사용하여 외부에서 드로잉을 수행하는 것입니다. – Bonlenfum

+0

그 덕분에, 고마워! 여기에 내가 한 일이있다 : >>> nx.draw (G) >>> plt.savefig ("simple_path.png") >>> plt.show() –

답변

1

대답은 의례 @Bonlenfum하고 코드를 - phvizlayout39 -와 --111 networkx은 "(위 참조 pygraphviz도 필요)

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 책에서 조정 된 코드입니다

관련 문제