「animation」パッケージと「jpeg」パッケージを利用してjpgファイルからGIFアニメーションを作成する例です。実行コマンドではplotコマンドの出力をGIFアニメーションで出力する方法を合わせて紹介します。
「animation」パッケージを利用したパッケージにはggplot2のプロットをアニメーション化する「gganimate」パッケージがあります。
・「gganimate」パッケージの紹介
https://www.karada-good.net/analyticsr/r-401/
パッケージバージョンは「animation」は2.7。「jpeg」は0.1-9。実行コマンドはwindows 11のR version 4.1.3で確認しています。
パッケージのインストール
下記、コマンドを実行してください。
#パッケージのインストール install.packages("animation") install.packages("jpeg")
必要なソフトウェアのインストール
GIFアニメーションの出力に必要なImageMagickのインストール方法です。Macはtar.gz形式のアーカイブ・バイナリ・ファイルをダウンロードし、ホームフォルダに保存後、下記コマンドをターミナルで実行してください。
###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/"
windowsは実行ファイルで用意されているので、クリックでインストールが可能です。
・ImageMagick
http://imagemagick.org/script/binary-releases.php
実行コマンド
詳細はコメント、パッケージのヘルプを確認してください。両パッケージには多くの機能が収録されています。
#パッケージの読み込み library("animation") library("jpeg") library("tcltk") #アニメーションgifを保存:animation::saveGIFコマンド #画像の切替間隔(秒):intervalオプション #ファイル名:movie.nameオプション #作業フォルダに出力されます saveGIF({ #繰り返し回数を設定する for (i in 1:5){ #処理内容を記述する plot(runif(10), ylim = c(0,1)) } }, interval = 1.0, movie.name = "TEST.gif") #MP4で保存:animation::saveVideoコマンド #ffmpegが必要:http://ffmpeg.org/download.html #画像の切替間隔(秒):intervalオプション #ファイル名:video.nameオプション #作業フォルダに出力されます saveVideo({ #繰り返し回数を設定する for (i in 1:5){ #処理内容を記述する plot(runif(10), ylim = c(0,1)) } }, interval = 1.0, video.name = "TEST.html") #アニメーションHTMLを保存:animation::saveHTMLコマンド #画像の切替間隔(秒):intervalオプション #ファイル名:htmlfileオプション #作業フォルダに出力されます saveHTML({ #繰り返し回数を設定する for (i in 1:5){ #処理内容を記述する plot(runif(10), ylim = c(0,1)) } }, interval = 1.0, htmlfile = "TEST.html") ###「jpeg」パッケージと連携して写真をGIFアニメーション化##### #jpgファイルの保存フォルダを指定 OpenFiles <- paste(as.character(tkchooseDirectory(title = "フォルダを選択"), sep = "", collapse ="")) #保存フォルダを作業フォルダに変更 setwd(OpenFiles) #フォルダ内のファイルを取得 ItemList <- list.files(path = OpenFiles) #gifアニメーションを作成 par(mar = c(0, 0, 0, 0)) par(oma = c(0, 0, 0, 0)) saveGIF( for (i in seq(length(ItemList))){ PlotJpg <- readJPEG(ItemList[i]) plot(0:1, 0:1, type = "n", axes = FALSE, xlab = "", ylab = "", asp = 1) rasterImage(PlotJpg, 0, 1, 1, 0) }, interval = 1.0, movie.name = "Animetion.gif")
出力例
・saveGIFコマンド
・「jpeg」パッケージと連携して写真をGIFアニメーション化
少しでも、あなたのウェブや実験の解析が楽になりますように!!