R igraph - 保存布局?

时间:2016-12-02 07:40:11

标签: r layout igraph

我想知道是否可以"保存" 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;信息?

2 个答案:

答案 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")

enter image description here