4

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

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

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

2 回答 2

7

您没有保存中间步骤。每个情节都只是在p. 如果要保留刚刚添加的部分,则需要执行以下操作:

p <- p + geom_line(aes(colour = rating))
于 2012-05-25T03:44:43.217 回答
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).

基本上重申了 joran 的建议,但我试图让它更具体。

于 2012-05-27T20:58:33.490 回答