使用scale_shape_manual时颜色在图例中丢失 [英] Colors lost in legend when using scale_shape_manual

查看:1224
本文介绍了使用scale_shape_manual时颜色在图例中丢失的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  d < -  data.frame 

我试图使用填充形状从形状的位置21绘制点。 (expand.grid(a = letters [1:4],
b = factor(1:2)),y = rnorm(8),x = rnorm(8))



ggplot (d,aes(x = x,y = y,fill = a,color = a))+
geom_point(aes(shape = b,fill = a),size = 4)+
scale_shape_manual (值= c(21,22))


我想让形状的轮廓颜色为黑色,所以我认为在 aes之外设置color =black ()可以做到这一点:

  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))

这可以在图表内工作。但是,图例中的颜色全部设置为黑色。



如何得到上面的图例?

解决方案

由于某些原因,填充图例默认为符号1实心圆圈),因此它显示颜色而不是填充美学。将此添加到ggplot命令中:

  + guides(fill = guide_legend(override.aes = list(shape = 21))) 


I am trying to plot points using filled shapes from position 21 of the shapes.

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

This works very well:

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))

I want to have the outline color of the shapes to be black, so I thought that setting color="black" outside the aes() would do the trick:

 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))

This works inside the plot. However, the colors in the legends are all set to black.

How to get the legend as above?

解决方案

For some reason, the fill legend defaults to shape symbol 1 (solid circle), so it shows the color rather than the fill aesthetic. Add this to the ggplot command:

  + guides(fill=guide_legend(override.aes=list(shape=21))) 

这篇关于使用scale_shape_manual时颜色在图例中丢失的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆