如何解决AttributeError:“ DiGraph”对象没有属性“ number_of_selfloops”
我正在尝试通过jupyter笔记本在我的PC中运行图形绘图代码。我的电脑中安装了Networkx,pygraphviz和nxpd。但是运行后我发现AttributeError
绘制(G,layout =“ 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
好像是最近几年更新的。您可以自己修改行(请参见https://github.com/chebee7i/nxpd/blob/master/nxpd/nx_pydot.py#L249),并与G.number_of_selfloops
交换nx.number_of_selfloops(G)
。
但是,我认为它们与nxpd
有关的问题更多,我建议您仅将networkx
自己的接口用于graphviz
,例如graphviz_layout
:
pos = nx.nx_agraph.graphviz_layout(G,prog="circo")
nx.draw(G,pos)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。