2016-12-02 4 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, а второй - атрибуту vettex с именем y. Igraph затем будет использовать этот макет, когда вы построите график без указания параметра layout.