如何更改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"))