Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add horizontal line to ggplot

I want to use ggplot2 to draw multiple line with different colors in one plot and then add a separate horizontal line. My code is as below. It works well until I run the final line p + geom_hline(yintercept=400). All the lines become black and legend on the right side disappear.

Does anyone know how to solve this problem?

library(ggplot2)
mry <- do.call(rbind, by(movies, round(movies$rating), function(df) { 
       nums <- tapply(df$length, df$year, length) 
        data.frame(rating=round(df$rating[1]), year = as.numeric(names(nums)), 
        number=as.vector(nums)) 
        }))
p<-qplot(year, number, data=mry, group=rating, geom="line",xlab = 'year',
     ylab = 'number')

p + geom_line()

p + geom_line(aes(colour = rating))

p + geom_hline(yintercept=400)
like image 828
syd Avatar asked Jan 17 '23 14:01

syd


1 Answers

You're not saving the intermediate steps. Each plot is adding just that one thing to p. If you want to keep the piece you just added, you'd need to do something like:

p <- p + geom_line(aes(colour = rating))
like image 194
joran Avatar answered Jan 21 '23 08:01

joran