我希望在一个图形`g`上运行社区检测算法,以获取社区对象`cd`,然后使用`plot(cd,g)`创建一个包含半透明斑点的图形,其中包含社区。但是,我还想将顶点着色,似乎`plot`会覆盖我赋给`V(g)$names`的顶点颜色。
以下是示例以说明我的意思:
当你执行
执行
执行
我想保留半透明的色块,但是我想强制自己的着色方式。原因是我想比较社区成员(色块)与另一种分类(顶点颜色)。
当我更改顶点标签时,没有遇到同样的问题。同时,我应该指出,这种方法不起作用:
以下是示例以说明我的意思:
v1 <- c(1,1,2,3,4,4,6,7,8,9)
v2 <- c(2,3,3,4,5,6,5,8,9,7)
graph <- data.frame(v1,v2)
g <- graph.data.frame(graph, directed=FALSE)
cd <- fastgreedy.community(g)
vcolor <- c("white", "white", "white",
"blue", "blue", "blue",
"red", "red", "red")
vertex_attr(g)$color <- vcolor
plot(g)
plot(cd,g)
当你执行
plot(g)
时,顶点的颜色是红、白和蓝色的。然而,当你执行plot(cd,g)
时,它们的颜色分别是蓝、绿和橙。执行
plot(g)
的结果如下:
![plot(g)](https://istack.dev59.com/kaPCH.webp)
plot(cd,g)
的结果如下:
![plot(cd,g)](https://istack.dev59.com/iNCj4.webp)
当我更改顶点标签时,没有遇到同样的问题。同时,我应该指出,这种方法不起作用:
plot(cd,g,vertex.color=vcolor)