使用列名更改ggplot2(R)的颜色

时间:2017-04-04 22:32:20

标签: r plot ggplot2

我有一个数据框(见下文),我想改变ggplot2中绘图的颜色,这样所有的A都是红色,B是蓝色,C是黑色,D是黄色。

myDF

label    A    B    C    D
lab1 0.69 0.65 0.73 0.71
lab2 0.43 0.41 0.47 0.41
lab3 0.53 0.47 0.57 0.53
lab4 0.55 0.47 0.60 0.55
lab5 0.53 0.47 0.58 0.53

我尝试了以下内容:

p <- ggplot(myDF, aes(x=label)) 
     + geom_point(aes(y=A))
     + geom_point(aes(y=B))
     + geom_point(aes(y=C))
     + geom_point(aes(y=D))
     + scale_colour_manual(values=c("A"="red", "B"= "blue", "C"="black", "D"="yellow"))

但它给了我一个错误。如果我不添加scale_colour_manual部分,它会给出正确的绘图但是所有的黑点。我怎样才能做到这一点?提前谢谢!

1 个答案:

答案 0 :(得分:2)

首先将数据转换为长格式。我会在白色上重新考虑黄色。

library(tidyr)
library(ggplot2)

myDF %>% 
  gather(key, value, -label) %>% 
  ggplot(aes(label, value)) + geom_point(aes(color = key)) +
    scale_colour_manual(values=c("red", "blue", "black", "yellow"))