在绘制社区分组时不一致

时间:2014-04-24 08:02:57

标签: r plot igraph

我在绘制社区时遇到了问题。请考虑以下MWE

library(igraph)

m <- matrix(c(0,0,0,0,0,0,
              1,0,0,0,0,0,
              0,0,0,0,1,0,
              4,1,0,0,0,0,
              0,0,0,0,0,1,
              0,0,0,0,0,0),nrow=6,ncol=6)

g <- graph.adjacency(m)
memb <- membership(edge.betweenness.community(g))
memb
# [1] 1 1 2 1 2 2

我希望在做

时可以看到情节中的两个社区
plot(g, mark.groups=list(memb), edge.width=0.5, edge.arrow.width=0.2) 

但实际上我只有一个社区

enter image description here

我做错了吗?

2 个答案:

答案 0 :(得分:4)

您可以绘制社区结构检测的结果,即communities对象,而不是绘制图形。请参阅?plot.communities中的示例。

ebc <- edge.betweenness.community(g)
plot(ebc, g)

plot

答案 1 :(得分:1)

如果我正确理解了您的问题,那么您使用的mark.groups参数错误。试试

plot(g, 
     mark.groups=lapply(unique(memb), function(n) which(memb==n)), 
     edge.width=0.5, 
     edge.arrow.width=0.2)