ggplot2:如何为由不同颜色的线连接的点指定多个填充颜色

11

我对ggplot2还不熟悉。我想创建一条线图,在该图中,点与线的颜色不同(如下图所示),点的填充颜色也不同。

enter image description here

假设我正在使用以下数据集:

set.seed(100)
data<-data.frame(dv=c(rnorm(30), rnorm(30, mean=1), rnorm(30, mean=2)), 
                 iv=rep(1:30, 3), 
                 group=rep(letters[1:3], each=30))

我尝试了以下代码:
p<-ggplot(data, aes(x=iv, y=dv, group=group,  pch=group)) + geom_line() + geom_point()

p + scale_color_manual(values=rep("black",3))+ scale_shape(c(19,20,21)) + 
scale_fill_manual(values=c("blue", "red","gray"))

p +  scale_shape(c(19,20,21)) + scale_fill_manual(values=c("blue", "red","gray"))

但我并没有得到我想要的。希望有人能指引我正确的方向。谢谢!
1个回答

21

scale_fill_manual()scale_shape_manual()scale_colour_manual() 只能在 aes() 中设置了 fill=shape=colour= 后才能使用。

如果想要仅对数据点更改颜色,应在 geom_point() 中加入 colour=group

  ggplot(data, aes(x=iv, y=dv, group=group,shape=group)) + 
    geom_line() + geom_point(aes(colour=group)) +
    scale_shape_manual(values=c(19,20,21))+
    scale_colour_manual(values=c("blue", "red","gray"))

输入图像描述


2
如果图表已经创建,我想改变颜色调色板怎么办? - qed
如何在不改变形状值的情况下填充 C 组圆形为灰色? - Robin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接