颜色图节点不同

时间:2015-04-14 13:46:51

标签: r graph colors nodes

我需要以不同方式为节点着色以绘制R中的图形社区(节点集)。对于这种情况,我处理17个社区(所以我需要17种不同的颜色)。为颜色节点我使用此命令。

 V(g5)$color<- ifelse(V(g5)$name %in% V(g3)$name,com$membership+1, "white")

com$membership    
1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17  1  1  1  1  1  1  1  1  1  1  1  1  2  2  2  2  2  2  2  2  2  2  2  2  3  3  3  3  3  3  3  3  3  4  4  4 4  4  4  4  4  4  5  5  6  6  6  6  6  6  6  6  7  7  8  8  8  8  9  9  9  9  9  9  9  9 10 10 10 10 10 10 10 11 11 11 11 11 11 12 12 13 13 13 13 14 14 14 14 15 15 15 15 16 17 17 9 14

并绘制:

 plot(g5, vertex.color=V(g5)$name)

我只得到6种颜色的问题,它重复到其他社区。我怎样才能正确地为这17个社区上色?

1 个答案:

答案 0 :(得分:1)

如果您只是使用数字索引指定颜色,则R将从当前palette()中提取颜色。默认情况下,它包含8种不同的颜色。

palette()
# [1] "black"   "red"     "green3"  "blue"    "cyan"    "magenta" "yellow" 
# [8] "gray"

如果指定的索引大于8,则R只会循环索引,使1==9

您可以更改托盘以包含更多颜色

palette(rainbow(17))

或者您可以显式设置颜色,而不是指定颜色索引。

mycols <- rainbow(17)
V(g5)$color<- ifelse(V(g5)$name %in% V(g3)$name,mycols[com$membership], "white")

这可能更安全&#34;而不是更改调色板,因为这将影响所有其他图。

g <- graph.ring(17)
V(g)$color <- rainbow(17)
plot(g)

enter image description here

注意:找到17种不同的颜色并不容易,您可以通过眼睛轻松区分。