我正在尝试创建仅包含网络社区的树形图。下面的示例代码为我提供了所有节点的树形图,但是当我处理一个相对较大的数据集时,我想创建一个只有社区的树形图,这样我就会有一个只有社区的较小的树形图,这是可能的?
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)
谢谢。
答案 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]]
等......