如何更改ggplot2图例的标题?

38

我在这里看到了这个问题,但我无法理解。

我该如何将“type”一词更改为其他内容?

4个回答

64

添加

+ labs(colour = "legend title") 

在你的ggplot调用中,可以通过指定图例对应的美学属性来修改图例标题。另外,ggplot2的Google群组也是一个很好的资源网站。

编辑:这假设颜色是图例中的美学属性,例如qplot(x,y,colour=z)。如果图例中显示的是另一种美学属性,请将其作为参数,例如+ labs(fill = "legend title")用于栅格/图像绘图。

更一般地说,如果指定了显式比例尺,例如scale_colour_continuous,则可以设置scale_name参数(注意:scales参数的细节可能在最近的ggplot2版本中发生了变化;此说明适用于版本0.9.2.1)。


1
谢谢Roman!您能告诉我如何更改“A”和“B”的文本吗? - Brani
1
@brani - 答案取决于"A"和"B"在您的图中的位置。它们是被绘制的值吗?是轴标签吗?假设它们是在x轴上绘制的值,您可以像这样做scale_x_discrete(breaks = c("a", "q", "z"), labels = c("foo", "bar", "baz"))来更改a、q和z的标签。您也可以在绘图之前在ggplot之外解决此问题。如果"A"和"B"是轴标签,则xlab("粉色猴子")ylab("土豚很生气")应该能解决问题。 - Chase
9
如果您有类似于 ggplot(aes(..., colour=g, lty=g, groups=g)) 的内容,那么您的答案是不起作用的。相反,它会创建一个额外的图例。 - csgillespie
2
我认为“color”或“colour”都可以使用,但在这种情况下,“colour”必须用作关键字。 - Mark
1
@Andrie,不是那两个。关于@hadley的编码规范,我发现受Ruby启发的下划线狂热命名约定更加令人沮丧(是的,我是ESS的粉丝)。我已经有一段时间没有碰过ggplot2了,据我所知,它经历了一些(不太)重大的变化。将不得不重新学习。实际上,我更倾向于创建一个包unhadleyisergrep这些annoying_function_names并用proper.ones.that.i.d.like.to.use替换它们。当然,我可以在ESS中重新绑定_,但这有什么乐趣呢?=) - aL3xa
显示剩余8条评论

8

5

由于某些原因,其他方法对我都不起作用。如果它们对你也无效,尝试添加这个方法:

+ guides(fill=guide_legend(title='MY NEW TITLE'))

1

提醒一句...如果像我这样做了一些愚蠢的事情,上述所有选项都可以被覆盖。在我的项目早期,我只是使用ggplot中的“主题”参数关闭了一个我不喜欢的图例:

theme(legend.title = element_blank())

如果你这样做,无论你输入多么漂亮的命令来改变标题 - 我试过上面所有的命令 - 它们都不会被你关闭图例的命令覆盖!你已经被警告了!;{)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接