R igraph - 保存布局?

R igraph - save layout?

我想知道是否可以 "save" 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

基本上,我能否以某种方式保存和导出 "layout" 信息?

在布局前用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")

igraph 布局只是一个具有 N 行和 2 列的矩阵,因此您可以保存该矩阵,稍后再将其加载回来。另一种选择是将矩阵的第一列分配给名为 x 的顶点属性,将第二列分配给名为 y 的 vettex 属性 - igraph 将在您绘制图形时使用此布局而不指定 layout 参数.