Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
pythonigraph中的图并集_Python_Graph_Union_Igraph - Fatal编程技术网

pythonigraph中的图并集

pythonigraph中的图并集,python,graph,union,igraph,Python,Graph,Union,Igraph,我有3个子图,我想使用Python包Igraph(v.0.9.1)获得它们的并集。我使用pythonv。3.8.5 让我们假设一个简单的例子,3个分别有5个、4个和8个顶点的有向图。每个顶点都有一个名为“name”的属性(我给每个顶点一个唯一的字符串标签) 如果我有3个不共享边且不共享属性“name”的值的图,我希望该并集有12个顶点(5+4+3)和9个边(3+4+2)。这是我想得到的图表。但是,我得到一个错误“AttributeError:一些图没有命名” “union”方法有两个参数:“gr

我有3个子图,我想使用Python包Igraph(v.0.9.1)获得它们的并集。我使用pythonv。3.8.5

让我们假设一个简单的例子,3个分别有5个、4个和8个顶点的有向图。每个顶点都有一个名为“name”的属性(我给每个顶点一个唯一的字符串标签)

如果我有3个不共享边且不共享属性“name”的值的图,我希望该并集有12个顶点(5+4+3)和9个边(3+4+2)。这是我想得到的图表。但是,我得到一个错误“AttributeError:一些图没有命名”


“union”方法有两个参数:“graphs”、“byname”(默认值:“auto”)。参考资料如下:

我找到了答案,而不是“联合”方法,我应该使用“不相交的联合”方法(其参数是要组合的图形列表)。此函数保留所有图形的属性

所有图形、顶点和边属性都将复制到结果中

# Note: igraph version: 0.9.1
from igraph import *

# Subgraphs

# g1: 5 vertices and 3 edges
g1 = Graph(directed=True)
g1.add_vertices(5)
g1.vs["name"] = ["1_g1", "2_g1", "3_g1", "4_g1", "5_g1"]
g1.add_edges([(0, 1), (2, 3), (4, 2)])

# g2: 4 vertices and 4 edges
g2 = Graph(directed=True)
g2.add_vertices(4)
g2.vs["name"] = ["1_g2", "2_g2", "3_g2", "4_g2"]
g2.add_edges([(1, 2), (3, 1), (2, 3), (0, 1)])

# g3: 3 vertices and 2 edges
g3 = Graph(directed=True)
g3.add_vertices(3)
g3.vs["name"] = ["1_g3", "2_g3", "3_g3"]
g3.add_edges([(0, 2), (1, 0)])

# Union of the 3 subgraphs
g_union = Graph(directed=True)

# Doesn't give me the result I expect...
g_union = g_union.union([g1, g2, g3], byname=True)