Shambhavi Srivastava Shambhavi Srivastava - 1 year ago 94
R Question

Add legend to geom_line() graph in r

I've been trying to add legend to my ggplot but failed miserably. I did go through other posts which were related to adding legends manually but couldn't apply the answers on my ggplot. I tried the function scale_colour_manual but the legend doesn't show up. Any help would be much appreciated.

geom_line(data=Summary,aes(y=Y1,x= X),colour="darkblue",size=1 )+
geom_line(data=Summary,aes(y=Y2,x= X),colour="red",size=1 )

My dataframe 'Summary' is as follows:

X Y1 Y2
139 1.465477e+16 7.173075e+15
277 1.044803e+16 9.275002e+15
415 1.059258e+16 8.562518e+15
553 1.033283e+16 8.268984e+15
691 9.548019e+15 1.022248e+16
830 1.008212e+16 8.641891e+15
968 9.822061e+15 9.315856e+15
1106 9.948143e+15 9.178694e+15
1244 1.013922e+16 8.825904e+15
1382 9.815094e+15 9.283662e+15

Please advise how to plot Y1, Y2 against X on the same graph and add legend on the side.

Answer Source

ggplot needs aes to make a legend, moving colour inside aes(...) will build a legend automatically. then we can adjust the legend labels via scale_color_discrete:

    geom_line(data=Summary,aes(y=Y1,x= X,colour="darkblue"),size=1 )+
    geom_line(data=Summary,aes(y=Y2,x= X,colour="red"),size=1) +
    scale_color_discrete(name = "Y series", labels = c("Y2", "Y1"))

enter image description here