注意
Go to the end 下载完整的示例代码。
有向无环图
这个示例演示了如何创建一个随机的有向无环图(DAG),这在许多场景中都非常有用,包括Git提交历史。
import igraph as ig
import matplotlib.pyplot as plt
import random
首先,我们设置一个随机种子以确保结果可重复。
random.seed(0)
首先,我们生成一个具有固定边数的随机无向图,没有环路。
g = ig.Graph.Erdos_Renyi(n=15, m=30, directed=False, loops=False)
然后我们将其转换为DAG 原地。此方法均匀地采样具有给定边数和顶点数的DAG。
g.to_directed(mode="acyclic")
我们可以打印出DAG的摘要。
ig.summary(g)
IGRAPH D--- 15 30 --
最后,我们可以使用来自igraph.Graph.layout_sugiyama()的Sugiyama布局来绘制图形:
fig, ax = plt.subplots()
ig.plot(
g,
target=ax,
layout="sugiyama",
vertex_size=15,
vertex_color="grey",
edge_color="#222",
edge_width=1,
)
plt.show()

脚本的总运行时间: (0 分钟 0.590 秒)