2012-05-25 122 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)

基本上重申什麼喬蘭建議,但我試圖讓它更具體。