【问题标题】:color graph nodes differently不同的颜色图节点
【发布时间】:2015-04-14 13:46:50
【问题描述】:

我需要为节点着色以在 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 个社区着色?

【问题讨论】:

  • 您应该发布reproducible example。尚不清楚 g5g3com 之间的关系。
  • 'g5' 和 'g3' 是两个图,'com' 是社区结构,即节点所属的社区。​​span>

标签: r graph colors nodes


【解决方案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")

这可能比更改调色板“更安全”,因为这也会影响所有其他绘图。

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

注意:要找到 17 种您可以用肉眼轻松区分的不同颜色并不容易。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-26
    • 1970-01-01
    • 1970-01-01
    • 2015-02-01
    相关资源
    最近更新 更多