2016-07-13 8 views
2

Ich habe ein Grundstück als enter image description hereSet Legende nach Linienfarbe mit ggplot

ggplot Verwendung, wie kann ich die Legende mit zwei Etikett nur dann gesetzt, das heißt, rote Linien mit dem Namen „Prognoseintervallen“ sagen und blaue Linie mit dem Namen „fit line“

verwendete ich folgende R Linien für diese

dfs <- data.frame("x"=1:50,"fit" = rnorm(50,30,4),"upper"=rnorm(50,30,4)+15, "lower"=rnorm(50,30,4)-15) 
df_melt <- reshape2::melt(dfs,id="x") 
g <- ggplot(df_melt,aes(x=x,y=value,colour=variable)) + geom_line(linetype=5) 
g <- g + scale_colour_manual(values=c("blue","red","red")) 
g <- g + theme_grey(base_size = 16) + theme(axis.text=element_text(colour = "black",size = 12)) 
g 

Antwort

4

Sie können einfach eine neue Spalte mit zwei Werte addieren („Prognoseintervalle“ oder „fit-Linie“)

enter image description here

# Add a new group column 
df_melt$group[df_melt$variable == "fit"] <- "fit line" 
df_melt$group[df_melt$variable != "fit"] <- "prediction intervals" 

# don't forget `group = variable` 
g <- ggplot(df_melt, aes(x = x, y = value, colour = group, group = variable)) + 
geom_line(linetype=5) 
g <- g + scale_colour_manual(values = c("blue" ,"red", "red")) 
g <- g + theme_grey(base_size = 16) + 
theme(axis.text = element_text(colour = "black", size = 12)) 
g 
Verwandte Themen