ggplot2とgifアニメでgapminder的なものをつくる

dichika2010-06-04

gapminderというものがあって、時系列データをグラフィカルに把握するのに非常に使える。
googleに確か買収されたので、motion chartという形でgoogle docsと連携が可能になっているがいかんせんweb上でしか使えないのでプレゼンの資料とかに貼り込みにくい。
あと
sensitiveなデータもgoogleに渡すのはちょっとねえって気分なのでとりあえず外面だけまねることにした。
やり方は簡単。
ggplot2でグラフを時系列に沿って作り、gifアニメとして成形するだけ。
ggplot2でバックに大きなテキストを表示させるやり方がちょっとわからなかったので、baseの作図デバイスを一度呼び出してggplot2を重ね、テキストを表示させるというまわりくどい方法をとっている。
こんな感じ↓

plot.new()
ggplot(data=data,aes(x=X, y=Y))+geom_point()
text(0.5, 0.5, "age20", cex=8, col="grey")

ちなみにグラフはある集団の血圧を19年間追ったもの。
横軸が最高血圧、縦軸が最低血圧、点の大きさはBMIに比例している。
なお、用いたデータは本物のデータから適当に作った疑似データ。