Upload
sleipnir002
View
995
Download
1
Embed Size (px)
Citation preview
実行して4秒で動画~animationパッケージ
で動画作成~
@sleipnir002
Tokyo.R#20
自己紹介
@sleipnir002
•Tokyo.Rでパターン認識の発表をシリーズでやっています。•職業:ITコンサル•データマイニングのIT業界への普及と促進のために活動しています。•ガイア好きです。•好きなAKB48のメンバーはこじはるです。
自粛
animation
パッケージのご紹介
パッケージ概要
1. Rから複数のアニメーションフォーマットへのエクスポートをサポート
→自分の望む形式に変換して、ホームページやレポート
に埋め込みができる!
2. 統計教育用のサンプルアニメーションを含む→統計の勉強になる!
Rのプロットを結合して、アニメーション形式で出力するパッケージ
animationを使って動画を作成してみよう!
library(animation)
ani.options(outdir="/var/XXX/")
s<-function(x, k){x^3+k*x^2-5*x+4}
ani.start()
for(i in -30:30){
plot(s(-30:30, i), type="l", ylim=c(-10000, 10000))
}
ani.stop()
オプションの設定
3次関数の係数を変更してプロット
録画開始
録画停止
Package animation
HTML形式のファイルが作成されていることを確認する。
インストール
• install.packages(“animation”)だけでOK!
• 以下のコマンドのインストールが必要
• ImageMagick・・・画像処理用のコマンドラインツール
• SWF Tools・・・SWF生成用のコマンドラインツール
$ sudo apt-get install imagemagick
$ sudo apt-get install libfreetype6-dev libgif-dev xpdf libjpeg8 libjpeg8-dev ←r-base-devを削除した。$ wget http://www.swftools.org/swftools-0.9.1.tar.gz$ tar -zxvf swftools-0.9.1.tar.gz$cd swftools-0.9.1$./configure$make$sudo make install
OS:Ubuntu 10.10 64bitの場合
出力形式
• HTML形式・・・ブラウザ上で再生するページを作成
• GIF形式・・・GIFに出力
• SWF形式・・・FLASHに出力
• PDF形式・・・Texで埋め込み
• 動画形式・・・mpeg4等に出力
• 動画をRのグラフィックデバイス上に作成することも可能。
動画を作成してみる
animationを使って動画を作成する3つの方法
A) savehoge()形式で特定フォーマットで保存
B) ani.start()形式でHTML形式で保存
C) ani.record()で録画、ani.replayで再生を行う。
A)saveHTML
• JSを使用してHTMLから動画を閲覧可能にする。
• exprで指定した手順でplotした画像を動画にする。
• img.nameの引数を保存する画像の拡張子に使用する。
• saveHTMLを複数回実行すると、ページ上にはHTMLが複数表示される。
>saveHTML(expr={bisection.method()}, img.name="bi")>saveHTML(expr={newton.method()}, img.name="newton")
動画を閲覧できるHMTLページを作成する。
方程式の根を求めるアルゴリズムのデモ
A)saveGIF
• ImageMagickのコマンドを使用して、動画を作成する。
• exprで指定した手順でplotした画像を動画にする。
• img.nameで指定した接頭辞で保存する。
• ファイルはオプションoutdirで指定したディレクトリにmovie.nameの名前で保存される。
>saveGIF(expr={boot.iid()}, clean=TRUE, img.name="boot", movie.name="boot.gif")
GIF形式の動画を作成する。
ブートストラップのデモ
A)saveSWF
• SWF Toolsのpng2swfコマンドなどを使用して、画像をFLASHに変換する。
• exprで指定した手順でplotした画像を動画にする。
• img.nameで指定した接頭辞で保存する。
• ファイルはオプションoutdirで指定したディレクトリにswf.nameの名前で保存される。
> saveSWF({expr=kmeans.ani(centers=4)},swftools=NULL, img.name="kmeans", swf.name="kmeans.swf")
FLASH形式の動画を画像から作成する。
K-means法の動きを表すアルゴリズムのデモ
B)ani.start(), ani.stop()
• 自動的にoutdirにJSファイルをコピーして、start開始後、stopまでに作成されたplotで動画を作成する。
• saveHTMLとは出力画面の形式が異なる。
• 指定したフォルダに必要なjavascriptファイルを出力するので注意。
HTMLによるアニメーションページを作成
>ani.start()>・・・>ani.stop()
デモは省略
C)ani.record (), ani.replay()
• ani.recordでカレントのデバイスの画像を保存して、記録する。
• ani.replayで記録した動画の再生を行う。
recordでカレントのデバイスを録画して、replayで再生する。
>for(i in 0:9){+ rbfsvm <- ksvm(x,y,kernel=rbfdot(sigma=1), C=1+i*20)+ ani.record()+ plot(rbfsvm,data=x,key.axes=axis(4, seq(-7, 7, by=1)), zlim=c(-7, 7))+}>ani.replay()
SVMの正則化のコストを大きくした時の挙動のデモ
オプション
ani.option(1)
• interval・・・フレームの間隔(秒)
• nmax・・・フレームの最大数
• ani.width,ani.height・・・画像の幅と高さ
• ani.dev,ani.type・・・デバイス、画像の種類
>ani.option() or ani.option(“interval”) #オプション内容の確認>ani.option(oopt) #デフォルトに戻す。>ani.options(interval=0.5)#インターバルを0.5に設定
ani.option(2)
[OUTDIR][hmtlfile]
[IMAGES]
・・・デフォルトのHTML出力ファイル
・・・デフォルトの画像出力先フォルダ
デフォルトの出力先フォルダ。特に指定しなければ、tmpフォルダが使用される。
• outdir・・・デフォルトの出力先フォルダ
• htmlfile・・・HTML出力(index.html)
• images・・・作成した画像を含むフォルダ
まとめ
• animationパッケージでRで簡単に動画が作成できるからみんな動画で可視化してみよう。
• animationパッケージで動画を作成する際のフォーマットはGIF,HTML,SWF,MPEGなど
• 統計教育用アニメーションがいっぱいあるので、暇な人は見てみよう。
最後に
こんな使い方はいかがでしょうか?
Tokyo.R第20回記念作品
「Rを巡る素敵な恋の物語」
♪
DREAMS COMES TRUE 『LOVE LOVE LOVE』
今からお話しするのは
Rを巡る素敵な恋の物語
この物語の主人公は
Tokyo.Rに参加しているR君
理系大学院生の彼は勉強熱心で
まじめな青年
そしてRが大好き
強いて挙げるとすると
彼の欠点はまじめすぎて奥手なところ
そんな彼は毎回
Tokyo.Rに参加しています
その理由はRの勉強をするため
でも、彼にはTokyo.Rに参加する
もう一つの理由がありました
それはよくTokyo.Rに参加しているSちゃん
彼はひそかに彼女に想いを
よせいていたのでした
奥手な彼は彼女のアドレスを
教えてもらったのですが、
Rの話しかできずにいたのです
そんなある日、
彼は素敵なイケメンITコンサルさんの紹介で
animationパッケージに出会いました
「よし、これだ!」
意を決したS君
ある日、Sちゃんを
誘ってこう話しかけました
「ねぇSちゃん、Rのプロットにサブタイトルを付けたいんだけど、付け方がわからないから
教えてくれないかな」
Sちゃんは答えました
『あら、そんなの簡単だわ。』
「ほんとに、じゃあこのソースコードに
付け加えてもらえるかな?」
R君は自分のPCをSちゃんの前に
置きました
『えーと、plotは・・・あっ・・・』
Sちゃんはソースコード読み、
一瞬はっとします
そして、彼女はそのソースコードに
sub=“yes”と書き加え、
二人はめでたく結ばれました。
そのコードはanimation
パッケージを使用していました
そしてそのコードを実行すると・・・
Fin
animationで素敵なRライフを
Be happyWith animation
※今日の資料はコードも含めてblogにアップします。