我想知道是否可以"保存" igraph网络的布局,以便其他人能够重现相同的图形?目前,Fruchterman Reingold算法总是创建一个新的网络...
par(mfrow=c(1,2))
g <- erdos.renyi.game(100, 1/100)
V(g)$size<-seq(0.05,5,0.05)
layout <- layout.fruchterman.reingold(g)
plot(g,
layout=layout,
vertex.label=NA)
g
所以基本上,我可以以某种方式保存&amp;导出&#34;布局&#34;信息?
答案 0 :(得分:3)
igraph布局只是一个包含N行和2列的矩阵,因此您可以保存矩阵,然后再将其加载回来。另一个选项是将矩阵的第一列分配给名为x
的顶点属性,将第二列分配给名为y
的vettex属性 - 当您绘制图形时,igraph将使用此布局而不指定{ {1}}参数。
答案 1 :(得分:2)
在布局之前使用set.seed()
设置随机数生成器种子,例如:
library(igraph)
g <- erdos.renyi.game(100, 1/100)
V(g)$size<-seq(0.05,5,0.05)
par(mfrow = c(2,2))
layout <- layout.fruchterman.reingold(g)
plot(g, layout=layout, vertex.label = NA, main = "No seed 1")
layout <- layout.fruchterman.reingold(g)
plot(g, layout=layout, vertex.label = NA, main = "No seed 2")
set.seed(1)
layout <- layout.fruchterman.reingold(g)
plot(g, layout=layout, vertex.label = NA, main = "With seed 1")
set.seed(1)
layout <- layout.fruchterman.reingold(g)
plot(g, layout=layout, vertex.label = NA, main = "With seed 2")