删除 ggplot 中的图例标题

我试图去掉 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")

enter image description here

我看过 这个问题,没有一个解决方案对我有效。大多数人都会给出一个关于如何弃用 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,我发现导航一些变化很困难..。

147984 次浏览

你几乎就要做到了: 只要加上 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())

关于 R 的 Cookbook 的这个页面提供了大量关于如何定制图例的详细信息。

这也可行,并且还演示了如何更改图例标题:

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

对于 Error: 'opts' is deprecated。使用 theme()代替。(已停用; 最后使用在版本0.9.1)’ 我把 opts(title = "Boxplot - Candidate's Tweet Scores")换成了 labs(title = "Boxplot - Candidate's Tweet Scores")成功了!

另一个选项使用 labs和颜色设置为 NULL

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

enter image description here

因为你可能有一个以上的图例在一个情节,一种方法来选择性地删除只有一个标题,而不留下一个空白的空间是设置 scale_函数的 name参数为 NULL,即。

scale_fill_discrete(name = NULL)

(赞美@pascal for 对另一个帖子的评论)