131

我正在尝试删除以下图例的标题ggplot2

df <- data.frame(
  g = rep(letters[1:2], 5),
  x = rnorm(10),
  y = rnorm(10)
)

library(ggplot2)
ggplot(df, aes(x, y, colour=g)) +
  geom_line(stat="identity") + 
  theme(legend.position="bottom")

在此处输入图像描述

我已经看到了这个问题,但那里的解决方案似乎都不适合我。大多数人都会给出关于如何opts弃用和使用的错误theme。我还尝试了各种版本的theme(legend.title=NULL), theme(legend.title=""),theme(legend.title=element_blank)等。典型的错误消息是:

'opts' is deprecated. Use 'theme' instead. (Deprecated; last used in version 0.9.1)
'theme_blank' is deprecated. Use 'element_blank' instead. (Deprecated; last used in version 0.9.1)

自 0.9.3 版发布以来,我第一次使用ggplot2它,我发现很难驾驭一些变化......

4

5 回答 5

227

你快到了:只需添加theme(legend.title=element_blank())

ggplot(df, aes(x, y, colour=g)) +
  geom_line(stat="identity") + 
  theme(legend.position="bottom") +
  theme(legend.title=element_blank())

Cookbook for R 上的此页面提供了有关如何自定义图例的大量详细信息。

于 2013-02-08T11:30:41.547 回答
10

这也有效,还演示了如何更改图例标题:

ggplot(df, aes(x, y, colour=g)) +
  geom_line(stat="identity") + 
  theme(legend.position="bottom") +
  scale_color_discrete(name="")
于 2013-02-08T11:36:28.923 回答
3

由于绘图中可能有多个图例,因此一种选择性地仅删除一个标题而不留下空白空间的方法是将函数的name参数设置为,即scale_NULL

scale_fill_discrete(name = NULL)

(感谢@pascal对另一个线程的评论

于 2020-06-05T10:34:36.997 回答
2

labs使用并将颜色设置为的另一个选项NULL

ggplot(df, aes(x, y, colour = g)) +
  geom_line(stat = "identity") +
  theme(legend.position = "bottom") +
  labs(colour = NULL)

在此处输入图像描述

于 2020-03-04T22:29:25.570 回答
0

对于Error: 'opts' is deprecated. 改为使用theme()。(已失效;最后在 0.9.1 版中使用)'我替换opts(title = "Boxplot - Candidate's Tweet Scores")labs(title = "Boxplot - Candidate's Tweet Scores"). 有效!

于 2015-11-29T20:01:07.860 回答