注意
转到末尾下载完整示例代码。
补图
本示例展示如何使用 igraph.GraphBase.complementer()
生成图的补图(有时也称为反图)。
import igraph as ig
import matplotlib.pyplot as plt
import random
首先,我们生成一个随机图
random.seed(0)
g1 = ig.Graph.Erdos_Renyi(n=10, p=0.5)
注意
我们设置了随机种子,以确保图在每次展示时都完全相同。如果您正在探索真正的随机图,则无需这样做 ;-)
然后我们生成补图
两者的并图当然是完整图,即一个所有顶点都与其他所有顶点连接的图。因为我们决定在补图生成器中忽略循环(也称为自环),所以完整图也不包含循环。
为了消除任何疑虑,完整图的补图是一个空图,它拥有相同的顶点但没有边。
为了更清晰地展示这些概念,这里是我们讨论的四种图(输入图、补图、并图/完整图、并图的补图/空图)的布局
fig, axs = plt.subplots(2, 2)
ig.plot(
g1,
target=axs[0, 0],
layout="circle",
vertex_color="black",
)
axs[0, 0].set_title('Original graph')
ig.plot(
g2,
target=axs[0, 1],
layout="circle",
vertex_color="black",
)
axs[0, 1].set_title('Complement graph')
ig.plot(
g_full,
target=axs[1, 0],
layout="circle",
vertex_color="black",
)
axs[1, 0].set_title('Union graph')
ig.plot(
g_empty,
target=axs[1, 1],
layout="circle",
vertex_color="black",
)
axs[1, 1].set_title('Complement of union graph')
plt.show()

脚本总运行时间: (0 分 0.317 秒)