在ggplot中编辑图例(文本)标签

我花了几个小时看文档和StackOverflow,但没有解决scheme似乎解决了我的问题。 当使用ggplot我不能在图例中获得正确的文本,即使它在我的数据框中。 我已经尝试了scale_colour_manualscale_fill_manual使用不同的labels=值,例如c("T999", "T888")", "cols"

这是我的代码:

 T999 <- runif(10, 100, 200) T888 <- runif(10, 200, 300) TY <- runif(10, 20, 30) df <- data.frame(T999, T888, TY) ggplot(data = df, aes(x=T999, y=TY, pointtype="T999")) + geom_point(size = 15, colour = "darkblue") + geom_point(data = df, aes(x=T888, y=TY), colour = 'red', size = 10 ) + theme(axis.text.x = element_text(size = 20), axis.title.x =element_text(size = 20), axis.text.y = element_text(size = 20)) + xlab("Txxx") + ylab("TY [°C]") + labs(title="temperatures", size = 15) + scale_colour_manual(labels = c("T999", "T888"), values = c("darkblue", "red")) + theme(legend.position="topright") 

帮助将非常感激! 谢谢。

@Henrik提到的教程是学习如何使用ggplot2软件包创build绘图的极好资源。

数据示例:

 # transforming the data from wide to long library(reshape2) dfm <- melt(df, id="TY") # creating a scatterplot ggplot(data = dfm, aes(x=TY, y=value, color=variable)) + geom_point(size=5) + labs(title = "Temperatures\n", x = "TY [°C]", y = "Txxx", color = "Legend Title\n") + scale_color_manual(labels = c("T999", "T888"), values = c("blue", "red")) + theme_bw() + theme(axis.text.x=element_text(size=14), axis.title.x=element_text(size=16), axis.text.y=element_text(size=14), axis.title.x=element_text(size=16), plot.title=element_text(size=20, face="bold", color="darkgreen")) 

这导致:

在这里输入图像说明

正如@ user2739472在评论中提到的那样:如果您只想更改图例文本标签而不是ggplot默认调色板中的颜色,则可以使用scale_color_hue(labels = c("T999", "T888"))而不是scale_color_manual()

传说标题可以通过特定的审美标记。

这可以使用ggplot2guides()labs()函数来ggplot2 (更多这里和这里 )。 它允许您使用审美映射添加指南/图例属性。

这是一个使用mtcars数据集和labs()的例子:

 ggplot(mtcars, aes(x=mpg, y=disp, size=hp, col=as.factor(cyl), shape=as.factor(gear))) + geom_point() + labs(x="miles per gallon", y="displacement", size="horsepower", col="# of cylinders", shape="# of gears") 

在这里输入图像说明

使用guides()回答OP的问题:

 # transforming the data from wide to long require(reshape2) dfm <- melt(df, id="TY") # creating a scatterplot ggplot(data = dfm, aes(x=TY, y=value, color=variable)) + geom_point(size=5) + labs(title="Temperatures\n", x="TY [°C]", y="Txxx") + scale_color_manual(labels = c("T999", "T888"), values = c("blue", "red")) + theme_bw() + guides(color=guide_legend("my title")) # add guide properties by aesthetic 

在这里输入图像说明