使用scale_shape_manual时颜色在图例中丢失 [英] Colors lost in legend when using scale_shape_manual
问题描述
d < - data.frame 我试图使用填充形状从形状的位置21绘制点。 (expand.grid(a = letters [1:4],
b = factor(1:2)),y = rnorm(8),x = rnorm(8))
$ c $
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屋!