2012-04-10 1 views
2

Je le graphique suivant,Comment obtenir des cycles fondamentaux avec R + iGRAPH

library(igraph) 
library(Cairo) 

g<-graph(c(0,1,0,4,0,9,1,7,1,9,2,9,2,3,2,5,3,6,3,9,4,5,4,8,5,8,6,7,6,8,7,8),n=10,dir=FALSE) 
V(g)$name<-c(1:10) 
V(g)$label<-V(g)$name 
coords <- c(0,0,13.0000,0,5.9982,5.9991,7.9973,7.0009,-1.0008,11.9999,0.9993,11.0002,7.9989,13.0009,10.9989,14.0009,5.9989,14.0009,7.0000,4.0000) 
coords <- matrix(coords, 10,2,byrow=T) 
plot(g,layout=coords) 

Je voudrais obtenir des cycles de 4, 5 ... n sommet, par exemple dans ce graphique que je voudrais pour obtenir des cycles de 5,

1 10 3 6 5 
2 8 7 4 10 
3 4 7 9 6 

Je ne veux pas des cycles comme

1 2 8 9 5 qui ont vertex à l'intérieur de ce cycle.

+0

Avez-vous étudié la page d'aide pour 'graphique? '? –

+2

évidemment, j'ai étudié le manuel et? Graphique, pourquoi? avez-vous vu quelque chose d'après cela? Merci – user1310873

Répondre

3

Je pense que pour commencer, modifions un peu votre code pour que quelqu'un puisse produire le graphique «prêt à l'emploi».

Le Caire n'est pas nécessaire pour ce code, alors supprimons-le. Remplacez la ligne de création graphique avec ces deux lignes:

your.nodes<-c(0,1,0,4,0,9,1,7,1,9,2,9,2,3,2,5,3,6,3,9,4,5,4,8,5,8,6,7,6,8,7,8) 
g<-graph(your.nodes+1,dir=FALSE) 

Ce your.nodes+1 existe parce que le graphique()/igraph traite 0 id de manière spéciale. Peut-être sujet pour un moment différent. À ce stade, vous devriez être en mesure de tracer le graphique à partir de votre dernière ligne. Plot of igraph

Maintenant en regardant l'intrigue, je me demande pourquoi 1 2 8 9 5 n'est pas nécessaire. Je suppose que je ne suis pas sûr de ce que vous entendez par "sommet dans un cycle". Pour ce qui est du cycle fondamental, regardez le paquet fundCycles() du ggm.

(PS:.. De plus, désolé pour ce détachement comme une réponse que je n'ai pas assez de points de réputation pour demander ce dans les commentaires et intégrez une image)

Questions connexes