创建树形图om社区,而不是igraph中的节点

时间:2014-07-13 14:12:14

标签: r igraph sna

我正在尝试创建仅包含网络社区的树形图。下面的示例代码为我提供了所有节点的树形图,但是当我处理一个相对较大的数据集时,我想创建一个只有社区的树形图,这样我就会有一个只有社区的较小的树形图,这是可能的?

library(igraph)
set.seed(1)    
g001 <- erdos.renyi.game(100, 1/10, directed = FALSE)

fc01 <- fastgreedy.community(g001)
colors <- rainbow(max(membership(fc01)))
plot(g001, vertex.size=2, vertex.label=NA, vertex.color=colors[membership(fc01)] )

dendPlot(fc01, mode="phylo", cex=1)

谢谢。

1 个答案:

答案 0 :(得分:0)

树形图类具有cut函数,可用于在特定高度分割树形图。 community算法似乎根据有多少对象使用高度。因此,根据上面的fc01对象,您可以使用

将其拆分为子组
ss01 <- cut(as.dendrogram(fc01), h=length(membership(fc01))-length(fc01))$lower

这为我创造了5组。我们可以使用

绘制整个集合和5个子集
layout(matrix(1:6, nrow=2))
dendPlot(fc01, mode="hclust")
lapply(ss01, plot, cex=1)

所以每个子图都在ss01[[1]]ss02[[2]]等......