簡體   English   中英

AttributeError: 'DiGraph' 對象沒有屬性 'number_of_selfloops'

[英]AttributeError: 'DiGraph' object has no attribute 'number_of_selfloops'

我正在嘗試通過 jupyter notebook 在我的電腦中運行圖形繪制代碼。 Networkx ,pygraphviz 和 nxpd 安裝在我的電腦中。但我在運行后發現 AttributeError

繪制(G,布局='circo')

我該如何解決這個問題? 錯誤在下面的描述中:

AttributeError                            Traceback (most recent call last)
<ipython-input-2-d4524714330e> in <module>
----> 1 draw(G, layout='circo')

~/anaconda3/lib/python3.7/site-packages/nxpd/nx_pydot.py in draw_pydot(G, filename, format, prefix, suffix, layout, args, show)
    455 
    456     # Draw the image.
--> 457     G2 = to_pydot(G)
    458     G2.write(fobj, prog=prog, format=ext)
    459     if close:

~/anaconda3/lib/python3.7/site-packages/nxpd/nx_pydot.py in to_pydot(G, raise_exceptions)
    247         graph_type = 'graph'
    248 
--> 249     strict = G.number_of_selfloops() == 0 and not G.is_multigraph()
    250 
    251     # Create the Pydot graph.

AttributeError: 'DiGraph' object has no attribute 'number_of_selfloops'

代碼如下:

import networkx as nx
import pygraphviz as pgv
from nxpd import draw, nxpdParams
nxpdParams['show'] = 'ipynb'
G = nx.DiGraph()


G.add_edge("a", "b")
G.add_edge("b", "c")
G.add_edge("c", "d")
G.add_edge("d", "e")
G.add_edge("e", "c")
G.add_edge("a", "d")
draw(G, layout='circo')

軟件包nxpd似乎是幾年前最后一次更新的。 您可以G.number_of_selfloops修改該行(請參閱https://github.com/chebee7i/nxpd/blob/master/nxpd/nx_pydot.py#L249 )並將G.number_of_selfloopsnx.number_of_selfloops(G)交換。 但是,我想他們與nxpd有更多問題,我建議簡單地使用networkx自己的接口來連接graphviz ,例如參見graphviz_layout

pos = nx.nx_agraph.graphviz_layout(G, prog="circo")
nx.draw(G, pos)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM