1

我有以下代码使用 walktrap 社区算法从相关矩阵中检测社区。一旦发现社区,我就绘制它们。

 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 的格式保存它们。我尝试了以下方法:

 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 但失败了。

4

1 回答 1

1

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

mycolors <- heat.colots(length(G1))
tkplot(G, vertex.color=mycolors[membership(G1)])
于 2013-04-03T16:15:09.743 回答