0
我有兩個不同的圖:g1和g2。我想將它們加在一起並創建一些邊緣。爲什麼這不起作用?igraph中的add_edge導致自我循環而不是新的邊緣
import igraph
def edging_up(g1, g2):
g = g1 + g2
for v in g.vs:
for w in g.vs:
try:
if v['name'].get_researcher_id() == w['name'].get_tutor_id():
g.add_edge(v, w)
except:
pass
return g
我需要try/exception,因爲一個圖沒有get_tutor_id()方法。 我也試過
def edging_up(g1, g2):
g = g1 + g2
for v in g1.vs:
for w in g2.vs:
if v['name'].get_researcher_id() == w['name'].get_tutor_id():
g.add_edge(v, w)
return g
然後,它的工作原理,而是添加的邊緣從v到W,它增加了一個自我循環,以訴 任何想法?欣賞它
「name」包含我添加的python類對象的所有方法。我也發現(從昨天開始有很多想法),當我添加兩個圖表(不相同)時,我失去了所有的屬性(如「name」)。我在網上找不到很多答案/幫助。他們大部分都是關於R的igraph。我應該嘗試使用networkx嗎?謝謝, –
正如我所理解的那樣,'name'將該節點作爲一個可以訪問其所有原始方法和變量的python對象來維護,對嗎? –
我的意思是,在示例2中,我調試了一下,發現條件子句被正確檢查。只是add_edge位有錯誤! –