因此,一些帖子已经解决了如何在ggplot中删除不需要的图例 .
wonderful answer发布到"Remove extra legends in ggplot2"建议:
对于任何映射变量,您可以使用适当比例_...中的guide ='none'来抑制图例的外观 .
但是,我遇到了 unwanted legends being created by adding the group aesthetic 的问题 . 我尝试了缩放方法,但它似乎不适用于group参数:
could not find function "scale_group"
搜索here也没有提供任何关于修改组美学的正确函数调用的见解 .
用户@joran provided以上链接帖子中的以下见解:
那是因为群体美学本身并没有产生任何尺度或指南 . 它总是在修改别的东西 . 你永远不会得到一个群体美学的传奇 .
Example
所以我可以将 show.legend = FALSE
添加到包含 group
的函数调用中以删除该函数的任何图例,但如果我希望该调用的其他部分(即美学)包含在图例中,则无法解决此问题 .
#Set Up Example:
library(lme4)
library(ggplot2)
mod <- lmer(mpg ~ hp + (1 |cyl), data = mtcars)
pred <- predict(mod,re.form = NA)
pdat <- data.frame(mtcars[,c('hp','cyl')], mpg = pred, up = pred+1, low = pred-1)
将 show.legend = F
添加到函数调用按预期工作:
gp <-
ggplot(data = mtcars, aes(x = hp, y = mpg, color = cyl, group = cyl), show.legend = F) +
geom_point(aes(group = cyl),show.legend = F) +
facet_wrap(~cyl) +
geom_line(data = pdat, aes(group = cyl),show.legend = F, color = 'orange')
但是当我想基于相同的 group
(因此不能使用 show.legend = F
参数)为 geom_ribbon
填充添加图例时,我再次获得了 group
的图例...
gp + geom_ribbon(data = pdat, aes(ymin = low, ymax = up, group = cyl, fill = 'mod'), alpha = 0.3) +
scale_fill_manual(values=c("orange"), name="model")
The outputs: