更改ggplot图例标题

TKN*_*TKN 7 r legend title ggplot2

所以这是我的ggplot的代码.如何最简单地更改图例的标题?我知道我可以将gg_group变量更改为my_title <- c(rep("train",10), rep("validation", 10)).但我想将标题更改为" whatever I want"而不更改任何变量.

library(ggplot2)
y <- c(rnorm(10,1), rnorm(10,3))
x <- rep(seq(1,10,1),2)
gg_group <- c(rep("train",10), rep("validation", 10))

gg_data <- data.frame(y=y, x=x, gg_group=gg_group)

p <- ggplot(gg_data, aes(x=x, y=y, group=gg_group))
p + geom_line(aes(colour=gg_group))
Run Code Online (Sandbox Code Playgroud)

我也试过这段代码:

p + geom_line(aes(colour=gg_group)) + scale_shape_discrete(name="Dataset",labels=c("Train", "Validation"))

但这不起作用.*编辑,检查来自Jaap和JasonAizkalns的优秀snwer.

Jas*_*lns 9

@Jaap是对的.如果使用,scale_color_discrete您可以使用名称更改图例的名称,而不必传递任何参数,labels因为它们将假定您的colour美学中定义的名称.这是考虑之间的差异:

p + geom_line(aes(colour = gg_group)) +
  scale_color_discrete(name = "Dataset")
Run Code Online (Sandbox Code Playgroud)

p + geom_line(aes(colour = gg_group)) +
  scale_color_discrete(name = "Dataset", 
                       labels = c("New Label 01", "New Label 02"))
Run Code Online (Sandbox Code Playgroud)


Jaa*_*aap 5

它不起作用的原因是因为您没有shapeggplot代码中使用 a 。相反,您应该使用scale_color_discrete如下:

scale_color_discrete("Dataset")
Run Code Online (Sandbox Code Playgroud)