0

我第一次使用 python + igraph 0.6 并且有一些基本问题。

首先,我想制作一个随机图,然后在某处插入一个集团。

from igraph import *
g = Graph.Erdos_Renyi(50,0.1)
h = Graph.Full(5)

如何制作一个新的图 g2,其中 h 由两条边连接到图 g?

其次,完成此操作后,我想找到最大的派系并在图片中显示它们所在的位置。调用组合图 g2。

mcliques = g2.maximal_cliques(4, 7)

我现在如何单独或在图表 g2 中绘制我们刚刚找到的派系?

4

1 回答 1

7

回答你的第一个问题:

g2 = g + h
g2.add_edges([(0, 50), (1, 51)])

甚至更简单:

g2 = g + h + [(0, 50), (1, 51)]

这里我们利用+两个图之间的算子创建两个图的不相交并集的事实,并且由于igraph总是使用连续的顶点 ID 范围,我们可以简单地知道顶点 0-49g2将跨越g,顶点 50-54 将跨度h

关于您的第二个问题,您没有通过绘制派系来具体说明您的意思,但可能的解决方案如下:

group_markers = [(clique, "gray") for clique in mcliques]
plot(g2, mark_groups=group_markers)

Graph.__plot__有关参数的更多信息,请参阅文档mark_groups;基本上,它要么是一个将颜色映射到顶点组(顶点 ID)的字典,要么是一个产生顶点 ID 和颜色对的列表。然后将顶点组用给定颜色作为背景的阴影区域包围。

于 2012-08-21T19:30:47.990 回答