2013-04-03 135 views
1

我有以下代码可以使用walktrap社区算法从相关矩阵中检测社区。一旦社区被发现,我绘制它们。将图形保存为igraph作为igraph对象或gml格式

G <- graph.adjacency(th, mode="undirected", weighted=TRUE) 
G <- delete.vertices(G, V(G)[ degree(G)==0 ]) 
G1<-walktrap.community(G) 
par(mai=c(0.4,0.01,0.01,0.4)) 
b<-plot(G1,G,vertex.size=15,vertex.label.color= "black",vertex.label.cex=0.45,layout=layout.fruchterman.reingold) 

我想什么做的是有它显示了不同的社区情节的交互式版本或将它们保存在可导入到cytoscape.I的格式试过如下:

tkplot(G1,G,vertex.size=15,vertex.label.color= "black",vertex.label.cex=0.45,layout=layout.fruchterman.reingold) 

但我得到以下错误:

Error in tkplot(G1, G, vertex.size = 15, vertex.label.color = "black", : 

不是一个图形对象

我试图将该图转换成gml格式以导入cytoscape,但失败。

回答

1

G1这里不是图表,而是分层社区结构。 tkplot()可以绘制图表,但不是社区结构。如果你想要一个显示最高模块化级别的社区,使用顶点颜色进行编码的情节,那么你可以这样做:

mycolors <- heat.colots(length(G1)) 
tkplot(G, vertex.color=mycolors[membership(G1)]) 
+0

这是行得通的!谢谢 ! – user1805343