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

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

但这并不奏效。正确的做法是什么?


当前回答

我没有深入研究,但因为你在ggplot()中使用了fill=cond,

 + labs(color='NEW LEGEND TITLE') 

可能没起作用。无论你用填充代替颜色,它都是有效的!

+ labs(fill='NEW LEGEND TITLE') 

我在ggplot2_2.1.0中使用了这种方法

其他回答

这应该可以工作:

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中使用facet_wrap,除了ArnaudA的解决方案外,没有一个建议的解决方案适合我:

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

我没有深入研究,但因为你在ggplot()中使用了fill=cond,

 + labs(color='NEW LEGEND TITLE') 

可能没起作用。无论你用填充代替颜色,它都是有效的!

+ labs(fill='NEW LEGEND TITLE') 

我在ggplot2_2.1.0中使用了这种方法

我注意到有两种方法来改变/指定图例。ggboxplot()的标题:

library(ggpubr)

bxp.defaultLegend <- ggboxplot(ToothGrowth, x = "dose", y = "len",
                               color = "dose", palette = "jco")

# Solution 1, setup legend.title directly in ggboxplot()
bxp.legend <- ggboxplot(ToothGrowth, x = "dose", y = "len",
                 color = "dose", palette = "jco", legend.title="Dose (mg)")

# Solution 2: Change legend title and appearnace in ggboxplot() using labs() and theme() option:
plot1 <-  bxp.defaultLegend + labs(color = "Dose (mg)") +
  theme(legend.title = element_text(color = "blue", size = 10), legend.text = element_text(color = "red"))

ggarrange(list(bxp.legend, bxp.defaultLegend, plot1), nrow = 1, ncol = 3,  common.legend = TRUE)

代码基于GitHub中的示例进行修改。

唯一对我有效的办法是: p + guides(fill=guide_legend("New title"))