4

ggplot2 を使用して、1 つのプロットに異なる色の複数の線を描画し、別の水平線を追加したいと考えています。私のコードは以下の通りです。最終行を実行するまではうまくいきます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

中間ステップを保存していません。各プロットは、その 1 つだけを に追加していpます。追加したピースを保持したい場合は、次のようにする必要があります。

p <- p + geom_line(aes(colour = rating))
于 2012-05-25T03:44:43.217 に答える
2

上記の質問に対する具体的な解決策は、コードの最後の行を単純に移動して、最後p + geom_hline(yintercept=400)から 2 番目の行の一部にすることです。

これにより、コードの最後の行は次のようになりますp + geom_line(aes(colour = rating)) + geom_hline(yintercept=400)。最後の 3 行を に結合することもできますp + geom_line(aes(colour = rating)) + geom_hline(yintercept=400)

基本的にはジョランの提案を言い換えていますが、より具体的にしようとしています。

于 2012-05-27T20:58:33.490 に答える