有没有一种简单的方法通过拼接在一起的几个地块,R内创建一个“电影”?
Answer 1:
这是一个方法,我发现,使用R帮助:
要创建单独的图像帧:
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 /富%02d.jpg output.mp4
可能需要一些修修补补,但是这似乎很简单,一旦安装了一切。
当然,任何地方,你看到“JPG”或“JPEG”,可以替代GIF或PNG,以满足你的想象。
Answer 2:
看看无论是动画通过创建的包一辉谢或EBImage Bioconductor的包(?动画)。
Answer 3:
我认为你可以在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)
代码归功于亚雷克Tuszynski,博士学位。
Answer 4:
如果一个较大的Perl / Python的/等内包装你的[R脚本。 脚本,你可以用你喜欢的命令行图像拼接工具缝合在一起的图表。
要运行一个包装脚本的[R脚本,使用R CMD BATCH
方法。
Answer 5:
我不知道这是可能的R.我做了一个项目时,一次从R数据点被导出到一个MySQL数据库和一个Flex / Flash应用程序拿起这些数据点,给动画视觉化..
Answer 6:
我做了使用XnView的的(免费的图形浏览器)创建幻灯片放映功能,一些电影。 我想通过时间和空间的数据显示趋势,所以我只是创造了一系列的阴谋,依次命名为[粘贴()是你的朋友对各种命名calistethics的]然后他们装成XNviews幻灯片对话并设置了一些定时器变量,瞧。 像花了5分钟就学会如何做到这一点,并产生一些可执行的图形。
Answer 7:
这里有从HDF5文件制作GIF动画“电影”一个完整的例子。 数据应该是一个3维阵列[n帧] [NROWS] [Ncolumns]的HDF数据集。
#
# 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)