Perform Vereinigung von Graphen basierend auf Scheitelpunktnamen Python igraph
Diese Ausgabe wurde abgelegt am github so etwas wie vor 6 Monaten, aber da es noch nicht behoben wurde, frage ich mich, ob es eine schnelle Lösung gibt, die mir fehlt.
Ich möchte zwei Diagramme basierend auf ihren Namen zusammenführen:
g1 = igraph.Graph()
g2 = igraph.Graph()
# add vertices
g1.add_vertices(["A","B"])
g2.add_vertices(["B","C","D"])
for vertex in g1.vs:
print vertex.index
0
1
for vertex in g2.vs:
print vertex.index
0
1
2
Wenn ich jedoch die Vereinigung durchführe, verwendet igraph die Scheitelpunkt-IDs anstelle der Namen, sodass ich drei statt vier Scheitelpunkte erhalte (wenn es auf Namen basiert). Ich denke das, weilB
hat den Index0
img2
, es wird mit @ zusammengefühA
vong1
. Und auf ähnliche WeiseC
vong2
wird mit @ zusammengefühB
vong1
.
g_union = igraph.Graph.union(g1,g2)
g_union.vs['name'] # of course
KeyError: 'Attribute does not exist'
for vertex in g_union.vs:
print vertex.index
0
1
2
Hast du eine Idee, wie du dieses Problem umgehen kannst? Dies ist möglich, da dies in der R-Implementierung von igraph geschehen ist.