我有这个数据框:
dftt <- data.frame(values = runif(11*4,0,1),
col = c(rep(2,4),
rep(1,4),
rep(5,9*4)),
x= rep(1:4, 11*4),
group=rep(factor(1:11), each=4)
)
> head(dftt)
values col x group
1 0.2576930 2 1 1
2 0.4436522 2 2 1
3 0.5258673 2 3 1
4 0.2751512 2 4 1
5 0.5941050 1 1 2
6 0.7596024 1 2 2
我这样画:
ggplot(dftt, aes(x=x, y=values, group=group, color=col)) + geom_line()
如何更改线条颜色,我希望前两条线为黑色和红色(在上图中它们都是黑色),其余线条为灰色(它们是浅蓝色)?
答案 0 :(得分:1)
您是否有理由尝试通过col添加颜色?在我看来,这很奇怪,因为col的值比组少。如果您只想为组着色,这将是正确的方法:
ggplot(dftt, aes(x=x, y=values, group=group, color=group)) +
geom_line() +
scale_color_manual(values = c("black",
"red",
rep("gray", 9)))
答案 1 :(得分:1)
将您的col
列转换为某个因子,然后将scale_color_manual
添加到您的绘图功能中。
library(ggplot2)
dftt$col<-as.factor(dftt$col)
ggplot(dftt, aes(x=x, y=values, group=group, color=col)) + geom_line(size=1.2) +
scale_color_manual(values=c( "black", "red", "blue"))
您可能需要重新排列色标以匹配您选择的颜色(1,2和5)