2012-05-25 68 views
3

我想使用ggplot2在一个绘图中用不同颜色绘制多条线,然后添加单独的水平线。我的代码如下。它运行良好,直到我运行最后一行p + geom_hline(yintercept=400)。所有线条变黑,右侧的传说消失。将水平线添加到ggplot

有谁知道如何解决这个问题?

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) 

回答

6

您不保存中间步骤。每个情节只是增加了一件事p。如果你想保持你刚才添加的部分,你需要做这样的事情:

p <- p + geom_line(aes(colour = rating)) 
2

一个具体的解决你的问题上面可以简单地移动的代码,你p + geom_hline(yintercept=400)最后一行,最多是第二行到最后一行的一部分。

这会让你的最后一行代码看起来像这样,p + geom_line(aes(colour = rating)) + geom_hline(yintercept=400)。您也可以将您的三条最后一行组合成p + geom_line(aes(colour = rating)) + geom_hline(yintercept=400)

基本上重申什么乔兰建议,但我试图让它更具体。