问题描述
请忽略整个图表中的随机点 - 这只是一个可快速重现的示例来说明我的意思:
ggplot(data = iris,aes(x = Sepal.Length,y = Sepal.Width,fill = Species)) +
geom_violin(alpha = 0.5) +
stat_summary(aes(shape="mean",group=1),fun = "mean",size = 2,geom = "point",color = "black") +
stat_summary(aes(shape = "median",group = 2),fun = "median",color = "red") +
labs(x = "Sepal Length",y = "Sepal Width",shape = "Shape",colour = "Species") +
theme_classic()
我该怎么做:
a)。更改图例,使每个分类变量的框中间没有红点? b)。更改“形状”图例的颜色,使“均值”为黑色,“中值”为红色?
我在 Google 上搜索了一个多小时,但找不到答案,因此非常感谢您的帮助。谢谢!
解决方法
图例指南有一个 override.aes
参数,您可以使用它来明确设置键的美感。
library(ggplot2)
ggplot(data = iris,aes(x = Sepal.Length,y = Sepal.Width,fill = Species)) +
geom_violin(alpha = 0.5) +
stat_summary(aes(shape="mean",group=1),fun = "mean",size = 2,geom = "point",color = "black") +
stat_summary(aes(shape = "median",group = 2),fun = "median",color = "red") +
labs(x = "Sepal Length",y = "Sepal Width",shape = "Shape",colour = "Species") +
guides(
shape = guide_legend(override.aes = list(colour = c("black","red"))),fill = guide_legend(override.aes = list(shape = NA))
) +
theme_classic()
#> Warning: position_dodge requires non-overlapping x intervals