2015-10-19 4 views
0

Je veux montrer comment un réseau social change au fil du temps. J'utilise igraph. Le problème est que chaque fois que je crée une représentation graphique d'une période de temps dans le réseau social, le programme met les sommets dans une position différente pour chaque graphique créé. C'est un problème parce que j'essaie de montrer comment les groupes de réseaux sociaux continuent/cessent au fil du temps.Comment dictez-vous la position des sommets dans igraph?

J'ai essayé de dicter la position des sommets en tapant l<-layout.fruchterman.reingold(g) puis en utilisant layout=l pour chaque graphe que je crée. Cependant, je reçois un message d'erreur qui ressemble à ceci:

Error in layout[v, , drop = FALSE] : subscript out of bounds 

Voici le code que je utilise:

require(igraph) 
cat<-read.csv(file="Bigplayers_3_36505-36605 - Copy.csv",header=F,sep=",") 
cat<-as.matrix(cat) 
set.seed(230) 
g <- graph.adjacency(cat, weighted=T, mode = "undirected") 
g2<-V(g)[degree(g)<1] 
g<-delete.vertices(g,g2) 
fg<-cluster_fast_greedy(g,merges=T,modularity=T,membership=T) 
colors<-rainbow(max(membership(fg))) 
V(g)$label<-V(g)$name 
plot(g,vertex.size=10,vertex.color=colors[membership(fg)],mark.groups=communities(fg),layout=layout.fruchterman.reingold, main='Enron Email Dataset', vertex.label.dist=0.5, vertex.frame.color='blue', vertex.label.color='black', vertex.label.font=1) 

Voici deux ensembles de données qui représentent les mêmes sommets sur les différents délais: here et here

Répondre

0

pour résoudre ce problème, je devais me débarrasser des lignes

g2<-V(g)[degree(g)<1] 
g<-delete.vertices(g,g2) 

Avec ces lignes disparues, les sommets restent dans la même position quel que soit le jeu de données que j'utilise.