2015-10-28 6 views
5

Also das ist mein Code für meine ggplot. Wie ändere ich am einfachsten den Titel der Legende? Ich weiß, dass ich nur meine gg_group Variable zu my_title <- c(rep("train",10), rep("validation", 10)) ändern kann. Aber ich möchte nur den Titel auf "whatever I want" ändern, ohne irgendwelche Variablen zu ändern.Change ggplot legende title

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

Ich habe auch versucht, diesen Code:

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

Aber das funktioniert nicht. * Edit, check great snwer von Jaap und Jason Aizkalns.

+2

Sie können 'scale_color_discrete' verwenden – Jaap

Antwort

1

Der Grund ist es nicht funktioniert, weil Sie keinen shape in Ihrem ggplot Code verwendet haben. Stattdessen sollten Sie scale_color_discrete wie folgt verwenden:

scale_color_discrete("Dataset") 
5

@Jaap ist korrekt. Wenn Sie scale_color_discrete verwenden, können Sie den Namen der Legende mit Namen ändern und müssen keine Argumente an labels übergeben, da sie die in Ihrer colour Ästhetik definierten Namen annehmen. Das heißt berücksichtigen die Unterschiede zwischen:

p + geom_line(aes(colour = gg_group)) + 
    scale_color_discrete(name = "Dataset") 

und

p + geom_line(aes(colour = gg_group)) + 
    scale_color_discrete(name = "Dataset", 
         labels = c("New Label 01", "New Label 02")) 
Verwandte Themen