使用scale_shape_manual时,图例中的颜色会丢失

Pet*_*ter 5 r ggplot2

我试图使用形状的位置21的填充形状绘制点.

d <- data.frame(expand.grid(a=letters[1:4],
      b=factor(1:2)), y=rnorm(8),x=rnorm(8))
Run Code Online (Sandbox Code Playgroud)

这非常有效:

ggplot(d, aes(x=x, y=y,fill=a,color=a))  + 
      geom_point(aes(shape=b,fill=a),size=4) +
      scale_shape_manual(values=c(21,22))
Run Code Online (Sandbox Code Playgroud)

我希望将形状的轮廓颜色设置为黑色,所以我认为在设置之外设置颜色="黑色" aes()可以解决问题:

 ggplot(d, aes(x=x, y=y,fill=a,color=a))  + 
   geom_point(aes(shape=b,fill=a),color="black",size=4) + 
   scale_shape_manual(values=c(21,22))
Run Code Online (Sandbox Code Playgroud)

这在情节内部起作用.但是,图例中的颜色都设置为黑色.

如何获得上面的传奇?

Sco*_*ott 7

由于某种原因,填充图例默认为形状符号1(实心圆),因此它显示颜色而不是填充美学.将其添加到ggplot命令:

  + guides(fill=guide_legend(override.aes=list(shape=21))) 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述