2012-04-10 17 views
2

Ich habe die nächste Grafik,Wie mit R + IGRAPH grundlegende Zyklen erhalten

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) 

Ich mag würde Zyklen von 4, i in diesem Graphen zum Beispiel 5 ... n Vertex, bekommen möchte erhalten Zyklen von 5,

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

ich will nicht Zyklen wie

1 2 8 9 5, die innerhalb dieses Zyklus Vertex haben.

+0

haben Sie die Hilfeseite untersucht für 'Graph? '? –

+2

offensichtlich habe ich das Handbuch und? Graph studiert, warum? Hast du etwas entsprechend gesehen? Vielen Dank – user1310873

Antwort

3

Ich denke, zu Beginn, lassen Sie uns Ihren Code ein wenig ändern, um es jemandem zu erleichtern, die Grafik "out of the box" zu produzieren.

Cairo wird für diesen Code nicht benötigt, also entfernen wir ihn. Ersetzen Sie die Diagrammerstellung Linie mit diesen beiden Linien:

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) 

Das your.nodes+1 existiert, weil Graph()/IGRAPH verarbeitet 0-ID in besonderer Weise. Vielleicht Thema für eine andere Zeit.

An diesem Punkt sollten Sie in der Lage sein, den Graphen von Ihrer letzten Zeile zu plotten. Plot of igraph

Jetzt mit Blick auf die Handlung, ich frage mich, warum 1 2 8 9 5 nicht benötigt wird. Ich denke, ich bin mir nicht sicher, was Sie mit einem "Eckpunkt innerhalb eines Zyklus" meinen. Soweit grundlegende Zyklus geht, schauen Sie sich fundCycles() von ggm Paket.

(PS:.. Auch leid dies als eine Antwort veröffentlichen Ich habe nicht genug Rufpunkte haben dies in den Kommentaren zu stellen, und betten Bild)

Verwandte Themen