如何更改ggplot中的图例标题

我有下面的情节如下。 它是用这个命令创build的:

>library(ggplot2) >df <- data.frame(cond = factor( rep(c("A","B"), each=200) ), rating = c(rnorm(200),rnorm(200, mean=.8))) >ggplot(df, aes(x=rating, fill=cond)) + geom_density(alpha=.3)+xlab("NEW RATING TITLE")+ylab("NEW DENSITY TITLE") 

现在接下来我要做的就是将cond图例标题修改为NEW LEGEND TITLE

所以我所做的只是添加以下代码添加上面代码的结尾:

 +labs(colour="NEW LEGEND TITLE") 

但它不起作用。 什么是正确的方法来做到这一点?

在这里输入图像说明

这应该工作:

 p <- ggplot(df, aes(x=rating, fill=cond)) + geom_density(alpha=.3) + xlab("NEW RATING TITLE") + ylab("NEW DENSITY TITLE") p <- p + guides(fill=guide_legend(title="New Legend Title")) 

(或者可选地)

 p + scale_fill_discrete(name = "New Legend Title") 

我没有深入了解这个,但是因为你在ggplot()中使用了fill = cond

  + labs(color='NEW LEGEND TITLE') 

可能没有工作。 但是,它通过填充replace颜色 ,它的工作原理!

 + labs(fill='NEW LEGEND TITLE') 

这在ggplot2_2.1.0中为我工作

PS我会评论,但我的stackoverflow声誉是不够的评论。

既然你有两个密度,我想你可能想用scale_fill_manual设置你自己的颜色。

如果是的话你可以这样做:

 df <- data.frame(x=1:10,group=c(rep("a",5),rep("b",5))) legend_title <- "OMG My Title" ggplot(df, aes(x=x, fill=group)) + geom_density(alpha=.3) + scale_fill_manual(legend_title,values=c("orange","red")) 

在这里输入图像说明

因为在你的代码中,你使用ggplot(data, fill= cond)来创build直方图,你还需要在标签部分(即+labs(fill="Title name")使用“fill”来添加图例标题。 如果您使用的是代码为ggplot(data,color = cond)的不同types的绘图,则可以使用+labs(colour= "Title Name") 。 总之,实验论证必须与aes论证相匹配。

我已经使用+ guides(fill=guide_legend("my awesome title"))来更改geom_bar图上的图例标题,但似乎没有为geom_point工作。

还有一个非常简单的答案可以用于一些简单的图表。

只需添加一个对guide_legend()的调用即可。

 ggplot(...) + ... + guide_legend(title="my awesome title") 

如非常好的ggplot文档所示 。

如果这不起作用,您可以通过致电指南来更精确地设置指导参数:

 ggplot(...) + ... + guides(fill=guide_legend("my awesome title")) 

您也可以通过指定这些参数来调用guides来更改形状/颜色/大小。

我在我的ggplot中使用facet_wrap,除了ArnaudA的解决scheme之外,没有任何build议的解决scheme适用于我:

 qplot(…) + guides(color=guide_legend(title="sale year"))