如何更改ggplot图例标题(How to change legend title in ggplo

2019-07-19 01:07发布

我有以下情节像下面。 据该命令创建:

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 图例标题新的图例标题

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

+labs(colour="NEW LEGEND TITLE")

但是,这是行不通的。 什么是应该做的正确方法?

Answer 1:

这应该工作:

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")


Answer 2:

我没有太多深入到这一点,但因为你使用的填充= COND在ggplot()

 + labs(color='NEW LEGEND TITLE') 

也不会管用。 然而,您可以通过更换填充 颜色 ,它的作品!

+ labs(fill='NEW LEGEND TITLE') 

这ggplot2_2.1.0为我工作

PS我会评论,但我的计算器声望不够评论。



Answer 3:

既然你有两个densitys我想你可能会想设定自己的颜色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"))



Answer 4:

上面的代码中没有为我工作。

这里是我的发现和它的工作。

labs(color = "sale year")

您也可以通过添加给予标题和显示之间的空间\n结尾。

labs(color = 'sale year\n")



Answer 5:

因为在你的代码中使用ggplot(data, fill= cond)创建你需要在标签部分,即同样使用“补”来添加图例标题直方图+labs(fill="Title name") 如果您使用的是不同类型的图,其中代码被ggplot(数据,颜色= COND),那么你可以使用+labs(colour= "Title Name") 综上所述,实验室参数必须符合AES的说法。

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



Answer 6:

还有一个很简单的答案,可以进行一些简单的图形工作。

只需添加一个调用guide_legend()到您的图表。

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

如图中非常漂亮ggplot文档 。

如果还是不行,可以更精确地设置你的指导参数有一个呼叫指南 :

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

您还可以通过你的电话到指定这些参数改变形状/颜色/大小guides为好。



Answer 7:

我使用的是建议的解决方案为我工作,除了ArnaudA的解决方案在我ggplot一个facet_wrap和无:

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


Answer 8:

只需添加到列表(这里的其他选项并没有为我工作),你也可以使用ggplot功能update_labels:

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

update_labels(p, list(colour="MY NEW LEGEND TITLE")

这也将让你改变X轴和Y轴标签,有独立的线路:

update_labels(p, list(x="NEW X LABEL",y="NEW Y LABEL")


Answer 9:

很多人花很多时间改变标签,图例标签,标题和轴的名字,因为他们不知道这是可能加载中包含空格[R表" " 。 然而,你可以这样做是为了节省时间或降低代码的大小,通过指定的分隔符,当你加载一个表,例如是用标签(或任何其他分离比默认或一个空格)分隔:

read.table(sep = '\t')

或通过使用CSV格式的默认加载参数:

read.csv()

这意味着你可以直接保留名称"NEW LEGEND TITLE"作为列名(标题)在自己的原始数据文件,以避免在各小区指定一个新的传奇称号。



文章来源: How to change legend title in ggplot
标签: r plot ggplot2