【发布时间】:2018-03-26 12:21:42
【问题描述】:
总结:在 R 中,我希望 ggplot 根据数据框中的因子变量来对齐 geom_point 的颜色。
以下是数据示例:
#CREATE VECTORS
C1<-c(2,2,2,1,1,0,0)
C2<-c(1,1,2,1,0,0,1)
C3<-c("YELLOW", "YELLOW", "GREEN","RED", "RED", "RED", "RED")
#COMBINE VECTORS - CREATE DATAFRAME
x<- data.frame(cbind(C1,C2,C3))
使用 ggplot 创建绘图:
ggplot(x, aes(C1,C2)) +
geom_jitter(aes(color=C3)) +
geom_point(aes(color=C3))
我希望 C3 变量选择绘图中的颜色,即 GREEN=green、RED=red 和 YELLOW=yellow
【问题讨论】:
-
您应该使用 scale_colour_manual 对配色方案进行编码:
... + scale_colour_manual(values = c("GREEN" = "green", "RED" = "red", "YELLOW" = "yellow")) -
这可能只是一个玩具示例,但一般来说,不要在数据中使用颜色名称来映射到绘图中的颜色。使用与数据中的组相对应的有意义的标签,并将实际颜色值保留为可视化色标中的实施细节。阅读here了解更多信息。
-
Andrew Milligan:感谢您的回复,您的解决方案有效。你是对的,这是一个“玩具例子”。我拼出“黄色”=“黄色”只是为了确保我明白了我的意思。我从 bergant 的反应中看到更多的是我正在寻找的,因为图中的颜色完全取决于 C3 中的值:颜色 = C3。再次感谢您的宝贵时间。