Rで解析:図や画像のGIFアニメーション作成例


「animation」パッケージと「jpeg」パッケージを利用してjpgファイルからGIFアニメーションを作成する例です。紹介はしませんが「animation」パッケージではhtml、mp4での出力も可能です。

実行コマンドではplotコマンドの出力をGIFアニメーションで出力する方法を合わせて紹介します。

「animation」パッケージを利用したパッケージにはggplot2のプロットをアニメーション化する「gganimate」パッケージがあります。

・「gganimate」パッケージの紹介
 https://www.karada-good.net/analyticsr/r-401/

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


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

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

#パッケージのインストール
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")

#基本的な使い方:saveGIFコマンド
#画像の切替間隔(秒):intervalオプション
#ファイル名:movie.nameオプション
#作業フォルダに出力されます
saveGIF({
#繰り返し回数を設定する 
  for (i in 1:5){
#処理内容を記述する
   plot(runif(10), ylim = c(0,1))
   }
}, interval = 1.0, movie.name = "TEST.gif")

###「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アニメーション化


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

スポンサードリンク

おすすめコンテンツ


スポンサードリンク