简单的python + igraph用法

Rap*_*ael 0 python igraph

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

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

from igraph import *
g = Graph.Erdos_Renyi(50,0.1)
h = Graph.Full(5)
Run Code Online (Sandbox Code Playgroud)

如何通过两条边连接到图g来创建一个新的图g2?

其次,做完这个后,我想找到最大的派系并在图片中显示它们的位置.调用组合图g2.

mcliques = g2.maximal_cliques(4, 7)
Run Code Online (Sandbox Code Playgroud)

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

Tam*_*más 7

回答你的第一个问题:

g2 = g + h
g2.add_edges([(0, 50), (1, 51)])
Run Code Online (Sandbox Code Playgroud)

甚至更简单:

g2 = g + h + [(0, 50), (1, 51)]
Run Code Online (Sandbox Code Playgroud)

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

关于你的第二个问题,你并没有通过策划派系来明确你的意思,但可能的解决方案如下:

group_markers = [(clique, "gray") for clique in mcliques]
plot(g2, mark_groups=group_markers)
Run Code Online (Sandbox Code Playgroud)

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