正弦波.
library(animation) wave <- function() { for(t in 1:100) { plot(function(x){ sin(x + 0.08 * pi * t) }, -pi, 2*pi, xlab="x", ylab="sin(x)", col="blue", lwd=3) } } saveMovie(wave(), interval=0.05, moviename="wave", movietype="gif", outdir=getwd(), width=640, height=480)
ソースはこれだけ.wave()で位相が少しずつ異なる正弦波を100回plotしているだけ.簡単.
うねうね.こちらはGIFアニメで出力したところ5.3Mと巨大なファイルになってしまったので,試しにMPEGで出力させてみた.
library(animation) wave2 <- function() x <- seq(-6*pi, 6*pi, length=100) y <- x for (t in 1:100) { z <- outer(x, y, function(x, y) { cos(sqrt(x*x + y*y) - 0.08 * pi * t) }) persp(x, y, z, zlim=c(-3, 3), theta = 30, phi = 30, expand = 0.5, col = "green") } } saveMovie(wave2, interval=0.05, moviename="wave2", movietype="mpg", outdir=getwd(), width=640, height=480)
こちらも簡単.outer()やpersp()を使って三次元プロットをしている.