相关疑难解决方法(0)

将字符串传递给agraph.py中的老化.networkx和pygraphviz的问题

给出这个初始图:

import networkx as nx
G=nx.MultiGraph()
fromnodes=[0,0,1,1,1,1,1,2,3,4,5,5,5,7,8,9,10]
tonodes=[1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
dupedgeind=0
for x,y in zip(fromnodes,tonodes):
    if G.has_edge(x,y):
        dupedgeind=dupedgeind+1
        G.add_edge(x,y,key=dupedgeind)
    else:
        dupedgeind=0
        G.add_edge(x,y,key=dupedgeind)
Run Code Online (Sandbox Code Playgroud)

有人可以重新创建此错误吗?

pos=nx.nx_agraph.pygraphviz_layout(G,prog='sfdp')

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\networkx\drawing\nx_agraph.py", line 262, in pygraphviz_layout
    A=to_agraph(G)
  File "C:\Python27\lib\site-packages\networkx\drawing\nx_agraph.py", line 155, in to_agraph
    A.add_edge(u,v,key=str(key),**str_edgedata)
  File "C:\Python27\lib\site-packages\pygraphviz\agraph.py", line 484, in add_edge
    eh = gv.agedge(self.handle, uh, vh, key, _Action.find)
KeyError: 'agedge: no key'
Run Code Online (Sandbox Code Playgroud)

问题与调用graphviz的老化函数有关,它似乎与key参数的格式不一样; 当我改变时(第480行agraph.py):

...
    eh = gv.agedge(self.handle, uh, vh, key , _Action.create)
... …
Run Code Online (Sandbox Code Playgroud)

c python swig graphviz networkx

29
推荐指数
1
解决办法
1597
查看次数

标签 统计

c ×1

graphviz ×1

networkx ×1

python ×1

swig ×1