2016-12-02 57 views
2

我想知道是否有可能“保存”igraph网络的布局,以便其他人能够重现相同的图形?就目前而言,Fruchterman莱因戈尔德算法总是创造新期待网络......R igraph - 保存布局?

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 

所以基本上,我可以以某种方式保存&导出“布局”的信息?

回答

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

3

一个的igraph布局仅仅是具有N行和2列的矩阵状,这样就可以节省基质和然后再装回。另一个选择是将矩阵的第一列分配给名为x的顶点属性,将第二列分配给名为y的vettex属性 - 当绘制图时未指定layout参数时,igraph将使用此布局。