Rで解析:ggplot2のプロットを簡単アニメーション「gganimate」パッケージ


ggplot2のプロットを簡単にアニメーション化するパッケージの紹介です。html出力はパッケージのみで可能ですが、GIFアニメーション、mp4、swfの出力は指定ソフトウェアのインストールが必要です。

Macで必要な指定ソフトウェアは、tar.gz形式のアーカイブ・バイナリ・ファイルで提供されています。インストール方法は「必要なソフトウェアのインストール」の項目を確認してください。

パッケージバージョンは0.1。実行コマンドはwindows 7およびOS X 10.11.2のR version 3.2.2で確認しています。


パッケージのインストール

下記、コマンドを実行してください。

#パッケージのインストール
install.packages("devtools")
devtools::install_github("dgrtwo/gganimate")

必要なソフトウェアのインストール

GIFアニメーション、mp4の出力に必要なImageMagickとFFmpegのインストール方法です。Macは各ソフトウェアのtar.gz形式のアーカイブ・バイナリ・ファイルをダウンロードし、ホームフォルダに保存後、下記コマンドをターミナルで実行してください。

windowsは実行ファイルで用意されているので、クリックでインストールが可能です。

・ImageMagick
 http://imagemagick.org/script/binary-releases.php

・FFmpeg
 http://ffmpeg.org/download.html

環境によってXcodeのインストールが必要です。コマンド実行時にエラーが出た場合はApp Storeからインストールしてください。なお、swf(フラッシュ)は利用頻度が減っているので紹介しません。

###ImageMagick#####
#http://imagemagick.org/script/binary-releases.php
cd $HOME
tar xvzf ImageMagick-x86_64-apple-darwin15.2.0.tar.gz
export MAGICK_HOME="$HOME/ImageMagick-6.9.3"
export PATH="$MAGICK_HOME/bin:$PATH"
export DYLD_LIBRARY_PATH="$MAGICK_HOME/lib/"

###FFmpeg#####
#http://ffmpeg.org/download.html
#Macはリンク先More releasesをクリックして「Download gzip taball」をダウンロード
#最後にパスワードが聞かれるので入力
#インストール後はホームに移動したffmpeg-2.8.6.tar.gzと解凍後にできるフォルダを削除して構いません
cd $HOME
tar xvzf ffmpeg-2.8.6.tar.gz
cd ffmpeg-2.8.6
./configure --disable-yasm
make
sudo make install
sudo cp -p ffmpeg /usr/local/bin
sudo cp -p ffprobe /usr/local/bin

実行コマンド

詳細はコメント、パッケージのヘルプを確認してください。

#パッケージの読み込み
library("gganimate")
library("ggplot2")

###データ例の作成#####
n <- 3000 #geom_boxploth,geom_violinhに適応 TestData <- data.frame(Year = sample(paste0(2016:2020), n, replace = TRUE), Group = sample(paste0("Group", 1:3), n, replace = TRUE), Data1 = runif(n) + sample(1:10, n, replace = TRUE), Data2 = runif(n) * runif(n)) ######## #アニメーション化するggplotオブジェクトを作成:frameオプション #frameオプションにアニメーションの基準となる変数を設定 TestPlot <- ggplot(TestData, aes(x = Data1, y = Data2, size = Data1, color = Group, frame = Year)) + geom_point() + guides(size = "none") ###参考:Groupでfacetプロットを用意##### #FacetTestPlot <- ggplot(TestData, aes(x = Data1, y = Data2, size = Data1, color = Group, # frame = Year)) + #       geom_point() + guides(size = "none") + #       facet_wrap(~ Group, scales = "free") #ファイルの出力:gg_animateコマンド #ggplot2のオブジェクトを設定:pオプション #ファイル名の設定:filenameオプション #frameで指定した変数名をタイトル表示:title_frameオプション #一枚づつgifでプロット gg_animate(TestPlot) #GIFアニメーションで出力 #ImageMagickのインストールが必要です #http://imagemagick.org/script/binary-releases.php gg_animate(TestPlot, filename = "TEST.gif", title_frame = TRUE) #gg_animate(FacetTestPlot, filename = "FacetTEST.gif", title_frame = TRUE) #mp4で出力 #FFmpegのインストールが必要です #http://ffmpeg.org/download.html gg_animate(TestPlot, filename = "TEST.mp4", title_frame = TRUE) #htmlで出力 #保存場所にjsフォルダ,imagesフォルダ,htmlファイルが出力されます gg_animate(TestPlot, filename = "TEST.html", title_frame = TRUE) #参考:フラッシュで出力 #swftoolsのインストールが必要です #http://www.swftools.org #gg_animate(TestPlot, filename = "TEST.swf", title_frame = TRUE) [/code]


出力例

・frameオプションを適応しプロット

・参考:Groupでfacetプロット


少しでも、あなたのウェブや実験の解析が楽になりますように!!

スポンサードリンク

関連コンテンツ


スポンサードリンク