4.14 複数の R プロットからアニメーションを作成する
1つのコードチャンクで連続したプロットを生成したとき, これらを結合して1つのアニメーションを生成できます. 出力フォーマットが HTML なら, これは簡単です. gifski パッケージ (Ooms 2021a) をインストールし, チャンクオプション animation.hook = "gifski"
設定するだけです. 図4.3 はシンプルな「パックマン」のアニメーションで, これは以下のコードで作成しました.
```{r, animation.hook="gifski"}
for (i in 1:2) {
pie(c(i %% 2, 6), col = c('red', 'yellow'), labels = NA)
}
```
アニメーションのフォーマットは GIF で, HTML 出力ではうまく動作しますが, LaTeX は GIF を直接サポートしていません. あなたが本書の PDF または印刷版を読んでいるなら, 図4.3 が2つの動かない画像になっているのはこれが理由です. 本書のオンライン版を読めば, 実際のアニメーションが見られるでしょう.
PDF でもアニメーションを動作させることはできますが, 事前準備が2つ必要です. 第1に, LaTeX パッケージの animate を読み込む必要があります (方法は6.4節参照). 第2に, Acrobat Reader でのみアニメーションを見ることができます. その上で以下の例のように, チャンクオプション fig.show = "animate"
で animate パッケージ を使いアニメーションを作成できるようにします.
---
title: PDF でのアニメーション
output:
pdf_document:
extra_dependencies: animate
---
以下のアニメーションは Acrobat Reader でのみ見ることができます.
```{r, fig.show='animate'}
for (i in 1:2) {
pie(c(i %% 2, 6), col = c('red', 'yellow'), labels = NA)
}
```
アニメーションのイメージフレーム間の表示間隔はチャンクオプション interval
で設定できます. デフォルトでは interval = 1
(つまり1秒) です.
R パッケージ animation (Xie 2021a) には, 統計的計算の方法やアイディアを表現するアニメーションの例がいくつか入っています. gganimate パッケージ (Pedersen and Robinson 2020) は ggplot2 (Wickham, Chang, et al. 2021) に基づいた滑らかなアニメーションの作成を可能にします. どちらも R Markdown で動作します.