我想使用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)
答案 0 :(得分:6)
您没有保存中间步骤。每个情节都只向p
添加一件事。如果你想保留刚刚添加的部分,你需要做类似的事情:
p <- p + geom_line(aes(colour = rating))
答案 1 :(得分: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)
。
基本上重述了乔兰建议的内容,但我试图让它更具体。