igraph本身是一个基于C的库,并封装了R和python的接口,可以极其简单的生成常用模型如随即图,小世界和无标度网络。文中整理部分函数名(没有整理详细的接口),具体查阅igraph文档可得,大多数模型都可以指定是否有向,有无自环。
erdos.renyi.game()
, Generate random graphs according to the Erdos-Renyi modelgnp()
/sample_gnp()
, Generate random graphs according to the G(n,p) Erdos-Renyi modelgnm()
/sample_gnm()
, Generate random graphs according to the G(n,p) Erdos-Renyi modelsmallworld()
/sample_smallworld()
library(igraph)
g <- graph.lattice(length=100, dim=1, circular=TRUE)
g2 <- erdos.renyi.game(100, 1/100)
g3 <- g %u% g2
g3 <- simplify(g3)
plot.igraph(g3, vertex.size = 1,vertex.label = NA, layout=layout_in_circle)
https://stackoverflow.com/questions/38202448/generate-small-world-model-in-igraph-using-newman-watts-algorithm
pa()
,sample_pa()
sample_fitness_pl()
.pa_age()
/sample_pa_age()
`bipartite()
/sample_bipartite()
traits()
/sample_traits()
/traits_callaway()
/sample_traits_callaway()
degseq()
/sample_degseq()
; in.deg
参数,首先生成一个符合度分布的无向图,然后进行部分重连,然后使用Monte-Carlo算法把整个图随机化。sample_k_regular()
, 每个节点拥有相同的度的图,regular graphgrowing()
, sample_growing()
, create a random graph by simulating its stochastic evolution.sample_grg()
, grg()
, Generate a random graph based on the distance of random point on a unit squaresample_last_cit()
, creates a graph, where vertices age, and gain new connections based on how long ago their last citation happened.