2017-04-20 4 views
1

ループでggplot2する:追加ラインプロットは、私はこのような既存のプロットに行数を追加する場所、インクリメンタルggplot2を作成したい

pl = ggplot() 
pl = pl + somesetup 
while(stillhavelines) { 
    df = getTheLine(fromsomewhere) 
    pl = pl + geom_line(aes(df$x,df$y),linetype=lt,colour=co) ## !!!! 
} 
ggsave(...) 

奇妙なことがあること、私は、これを行う場合1つのデータフレームからすべてのラインプロットが表示されます。私は代わりに、各データフレームを独自の変数に割り当てることでこれを試しています。

ggplotに実際に異なるデータフレームの行を表示するにはどうすればよいですか?それはなぜこれを行うのですか、それは非常に驚くべきで直感的ではありません。 dataが、それはそれだけで表示されますので、層は、それぞれの時間が、実際には同じであると仮定します指定されていない場合

pl = pl + geom_line(data = df, aes(x = x, y = y), linetype = lt, colour = co) 

+1

これは本当にggplot2の使用方法ではありません(ただし、私が推測すると多大な努力が必要です)。プロットする前に*データを徐々に作成してみてはどうでしょうか?そのために、何かを段階的に構築するのはなぜですか? –

答えて

1

あなたはdata引数でggplot層に使われているデータを定義することができます最近のもの

私は、次のコードでそれをテストした:Konrad Rudolph statedとして、私はこれをしたいと思うものをシナリオにはわからないけど

library(ggplot2) 

dat <- list(
    data.frame(a = 1:5, b = 8:12), 
    data.frame(a = 11:15, b = 18:22), 
    data.frame(a = 21:25, b = 28:32) 
) 

p <- ggplot() 

i <- 1 

while(i <= length(dat)) { 
    df <- dat[[i]] 
    p <- p + geom_line(data = df, aes(a, b)) 
    i <- i + 1 
} 

p 

plot image

。データをプロットする前にまずデータを整理して、より簡単にggplotコードにする方がよいでしょう。

関連する問題