ggplot2をアニメーション(animation)させる際には、printするのを忘れないこと

意外とハマるじゃないかポイントで、30分弱無駄にした。とりあえずggplot2とanimationパッケージ入れましょう。

library(animation)
library(ggplot2)

あと、Winユーザは適当にImageMagickへのパスを通す必要がある。

ani.options(convert='C:/Program Files/ImageMagick-6.9.0-Q16/convert.exe') 

以下のコードでprintを忘れると、出力は真っ白なgifファイルで白銀の世界だ。そんなものを所望していない俺が本当に欲しかったものを出すためには、forループ中にprintを噛ませて、各PLOTを出力をさせる必要がある。

test <- function(){
  for(i in 1:20){
    #ちゃんとprintさせる!!!
    print(qplot(1:10, rnorm(10), colour = runif(10)))
  }  
}
saveGIF(test())

結果は以下。

参考

上だとanimationパッケージのsaveMovie関数なるものを使ってるけど、今CRANで配布されているものではdeprecatedされちゃったぽい。代わりにsaveGIF関数なりの、保存したいフォーマット用の関数を使うようにしましょう。