2016-12-02 17 views
2

他の人が同じグラフを再現できるようにigraphネットワークのレイアウトを「保存」することは可能でしょうか?今のところ、Fruchterman Reingoldアルゴリズムは常にそう基本的に...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 

を新たに探してネットワークを作成し、私は何とか&輸出「レイアウト」の情報を保存することができますか?レイアウト前set.seed()と乱数ジェネレータシード、例えば設定し

答えて

2

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という名前の頂点属性に割り当て、もう1つをyという名前のvettex属性に割り当てます。layoutパラメータを指定せずにグラフをプロットすると、igraphはこのレイアウトを使用します。

関連する問題