Depende un poco de cuál sea su objetivo final.
Hack rápido y sucio para demostraciones en tiempo real
El uso Sys.sleep(seconds)
en un bucle donde seconds
indica el número de segundos entre cuadros es una opción viable. Deberá establecer los parámetros xlim
y ylim
en su llamada plot
para que las cosas se comporten como se espera.
Aquí hay un código de demostración simple.
# Just a quick test of Sys.sleep() animation
x <- seq(0,2*pi, by=0.01)
y <- sin(x)
n <- 5
pause <- 0.5
ybnds <- quantile(n*y, probs=c(0,1))
x11()
# Draw successively taller sinewaves with a gradually changing color
for( i in 1:n )
{
plot(x, i*y, type="l", lwd=2, ylim=ybnds, col=topo.colors(2*n)[i])
Sys.sleep(pause)
}
Esto funciona bastante bien, especialmente usando X-Windows como el sistema de ventanas. Descubrí que Mac quartz()
no funciona bien, desafortunadamente.
GIF animados
Si necesita algo que pueda redistribuirse, publicarse en una página web, etc., mire la write.gif
función en el paquete caTools . Mostrar ayuda en write.gif
proporciona varios ejemplos agradables, que incluyen un par de animaciones, una con un ejemplo bastante bueno usando el conjunto de Mandelbrot.
Ver también aquí y aquí .
Control más ajustado y animaciones más sofisticadas
Hay un paquete de animación que se ve bastante capaz. Sin embargo, no lo he usado, así que no puedo dar ninguna recomendación real de ninguna manera.
Yo he visto algunos buenos ejemplos de salida de este paquete y se ven bastante bien. Quizás uno de los "aspectos más destacados" es la capacidad de incrustar una animación en un PDF.
tourr:animate_dist
un ejemplo de este enfoque.Una forma de hacerlo es usar el excelente paquete de animación de Yihui Xie. Subí un ejemplo muy simple a mi cuenta pública de Dropbox : densidadplot (eliminaré este ejemplo en 3 días). ¿Es esto lo que estás buscando?
La animación se creó con el siguiente código R:
fuente
En aras de la integridad, si necesita esto para una demostración de clase, también mencionaría el
manipulate
paquete que viene con RStudio . Tenga en cuenta que este paquete depende de la interfaz RStudio, por lo que no funcionará fuera de él.manipulate
es bastante bueno porque permite crear rápidamente algunos controles deslizantes para manipular cualquier elemento en la trama. Esto permitiría hacer una demostración fácil y en tiempo real en clase.Otros ejemplos aquí
fuente
Aquí hay otro enfoque:
fuente