Rにおける一連のプロットからムービーを作成[クローズ]
質問
Rの中、一緒にいくつかのプロットを縫合することにより、「映画」を作成する簡単な方法はありますか?
解決
ここで私はRのヘルプを使用して見つかった1つの方法はあります:
個々の画像フレームを作成するには:
jpeg("/tmp/foo%02d.jpg")
for (i in 1:5) {
my.plot(i)
}
dev.off()
映画を作るには、まず ImageMagickのをインストールします。 そして、(私が思うのImageMagickの一部、「変換」と呼ぶ)は、以下の関数を呼び出します:
make.mov <- function(){
unlink("plot.mpg")
system("convert -delay 0.5 plot*.jpg plot.mpg")
}
またはこの記事ので説明したようにffmpegの機能を使用してみてください(私が見つけたこのは)きれいな結果を与えます: ffmpegの-r 25 -qscale 2 -i TMP / FOO%02d.jpg output.mp4
工夫のビットが必要になる場合がありますが、これはすべてがインストールされた後、非常にシンプルに見えた。
もちろん、どこでもあなたは「JPG」または「JPEG」を参照してください、あなたはあなたの空想に合わせてGIFまたはPNGに置き換えることができます。
他のヒント
私はあなたがcaToolsライブラリ内のwrite.gif機能でも、これを行うことができると思います。最初のマルチフレーム画像にあなたのグラフを取得する必要があるだろう。私はそれを行うするかどうかはわかりません。誰でも? Bueller?
アニメーションGIFの古典的な例は、私が書いていない、このコードですが、私はブログをやりましたのいくつかの時間前におよそます:
library(fields) # for tim.colors
library(caTools) # for write.gif
m = 400 # grid size
C = complex( real=rep(seq(-1.8,0.6, length.out=m), each=m ), imag=rep(seq(-1.2,1.2, length.out=m), m ) )
C = matrix(C,m,m)
Z = 0
X = array(0, c(m,m,20))
for (k in 1:20) {
Z = Z^2+C
X[,,k] = exp(-abs(Z))
}
image(X[,,k], col=tim.colors(256)) # show final image in R
write.gif(X, 'Mandelbrot.gif', col=tim.colors(256), delay=100)
コードの信用はJarek Tuszynski、博士に行きます。
あなたのRスクリプトは、より大きなのPerl / Pythonのは/ etcの中にラップしている場合。スクリプトは、あなたのお気に入りのコマンドライン画像ステッチツールでグラフを一緒にステッチすることができます。
<のhref =「http://blog.revolution-computing.com/2009/06/running-scripts-with-r-cmd-batch.html」を使用し、ラッパースクリプトを使用してRのスクリプトを実行するにはrel = "nofollowをnoreferrer"> R CMD BATCH
の方法。
私はそれがRからのデータポイントは、MySQLデータベースにエクスポートされたとFlex / Flashアプリケーションは、これらのデータポイントをピックアップし、アニメーションの可視化を与えたとき、私は一度プロジェクトをやったR.で可能であるかわからない..
私はスライドショー機能を作成しますXnViewの者(フリーウェアグラフィックビューア)を使用して、いくつかの映画をやりました。私は、空間データとの時間を通して傾向を見せたかったので、私はちょうど順次という名前の一連のプロットを作成し、[ペーストは、()calistethics命名のすべての種類のためにあなたの友人である]、その後XNviewsにそれらをロードされたが、対話をスライドショーといくつかのタイマー変数を設定します出来上がり。それを行うと、いくつかの実行可能なグラフィックスを生成する方法については、5分のようにかかっています。
ここでHDF5ファイルからアニメーションGIF「映画」を作るの完全な例です。データは、HDFデータセットであるべきである3次元配列[NFRAMES] [NROWS] [Ncolumns]。
#
# be sure to be run as Administrator to install new packages
#
source("http://bioconductor.org/biocLite.R")
biocLite("rhdf5")
install.packages('caTools')
install.packages('fields')
library(caTools)
library(fields)
library(rhdf5)
x = h5read(file="mydata.h5",name="/Images")
write.gif(x,"movie1.gif",col=rainbow,delay=10,flip=TRUE)