删除图例ggplot 2.2

我试图保持一个层的图例(平滑),并删除另一个层的图例(点)。我已经尝试用guides(colour = FALSE)geom_point(aes(color = vs), show.legend = FALSE)关闭传说。

编辑:由于这个问题和它的答案很流行,一个可重复的例子似乎是按顺序的:

library(ggplot2)
ggplot(data = mtcars, aes(x = mpg, y = disp, group = gear)) +
geom_point(aes(color = vs)) +
geom_point(aes(shape = factor(cyl))) +
geom_line(aes(linetype = factor(gear))) +
geom_smooth(aes(fill = factor(gear), color = gear)) +
theme_bw()

enter image description here

489261 次浏览

from r食谱, bp是你的ggplot:

删除特定美学的图例(填充):

bp + guides(fill="none")

它也可以在指定比例时完成:

bp + scale_fill_discrete(guide="none")

这将删除所有的传说:

bp + theme(legend.position="none")

可能有另一个解决方案:
你的代码是:

geom_point(aes(..., show.legend = FALSE))

你可以在aes调用中指定show.legend参数:

geom_point(aes(...), show.legend = FALSE)

然后相应的图例应该消失

如果你的图表同时使用fillcolor美学,你可以删除图例:

+ guides(fill=FALSE, color=FALSE)

由于问题和user3490026的答案是热门搜索,我已经做了一个可重复的例子,并简要说明了迄今为止提出的建议,以及明确解决OP问题的解决方案。

ggplot2所做的一件事是,当某些图例与同一变量关联时,它会自动混合这些图例。例如,factor(gear)出现了两次,一次为linetype,一次为fill,从而形成一个组合图例。相比之下,gear有自己的图例条目,因为它不像factor(gear)那样被对待。目前提供的解决方案通常都很有效。但偶尔,您可能需要重写指南。请看下面的最后一个例子。

# reproducible example:
library(ggplot2)
p <- ggplot(data = mtcars, aes(x = mpg, y = disp, group = gear)) +
geom_point(aes(color = vs)) +
geom_point(aes(shape = factor(cyl))) +
geom_line(aes(linetype = factor(gear))) +
geom_smooth(aes(fill = factor(gear), color = gear)) +
theme_bw()

enter image description here

删除所有图例:@user3490026

p + theme(legend.position = "none")

删除所有图例:@duhaime

p + guides(fill = FALSE, color = FALSE, linetype = FALSE, shape = FALSE)

关闭传说:@Tjebo

ggplot(data = mtcars, aes(x = mpg, y = disp, group = gear)) +
geom_point(aes(color = vs), show.legend = FALSE) +
geom_point(aes(shape = factor(cyl)), show.legend = FALSE) +
geom_line(aes(linetype = factor(gear)), show.legend = FALSE) +
geom_smooth(aes(fill = factor(gear), color = gear), show.legend = FALSE) +
theme_bw()

删除填充,使线条变得可见

p + guides(fill = FALSE)

如上所述,通过scale_fill_函数:

p + scale_fill_discrete(guide = FALSE)

现在有一个可能的答案

"保持图例的一层(平滑),并删除图例的 其他(点)" < / p >

打开一些,关闭一些,临时的,事后的

p + guides(fill = guide_legend(override.aes = list(color = NA)),
color = FALSE,
shape = FALSE)

enter image description here