如何用R + Igraph获得基本周期

时间:2012-04-10 14:34:55

标签: 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)

我想获得4,5 ... n个顶点的循环,例如在这些图中我想得到5的循环,

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

我不想要像

那样的循环

1 2 8 9 5在这个循环中有顶点。

1 个答案:

答案 0 :(得分:3)

我认为首先,让我们稍微修改一下您的代码,以便让某人更轻松地制作图表&#34;开箱即用&#34;。

此代码不需要Cairo,因此请将其删除。用以下两行替换图形创建行:

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)

your.nodes+1存在,因为graph()/ igraph以特殊方式处理0 id。也许是不同时期的主题。

此时,您应该能够绘制最后一行的图表。 Plot of igraph

现在看一下情节,我想知道为什么不需要1 2 8 9 5。我想我不确定你在一个循环中的&#34;顶点是什么意思&#34;。至于获得基本周期,请查看ggm包中的fundCycles()

(PS:另外,很抱歉将此作为答案发布。我没有足够的声望点在评论中提出这个问题并嵌入图片。)