Dipende un po 'dal tuo obiettivo finale.
Hack veloce e sporco per dimostrazioni in tempo reale
L'utilizzo Sys.sleep(seconds)
in un ciclo in cui seconds
indica il numero di secondi tra i frame è un'opzione praticabile. È necessario impostare i parametri xlim
e ylim
nella chiamata plot
per fare in modo che le cose si comportino come previsto.
Ecco un semplice codice dimostrativo.
# 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)
}
Funziona abbastanza bene, specialmente usando X-Windows come sistema di finestre. Ho scoperto che i Mac quartz()
non funzionano bene, sfortunatamente.
GIF animate
Se hai bisogno di qualcosa che può essere ridistribuito, pubblicato su una pagina web, ecc., Guarda la write.gif
funzione nel pacchetto caTools . La visualizzazione della guida su write.gif
fornisce alcuni esempi interessanti, tra cui un paio di animazioni, una con un esempio piuttosto piacevole che utilizza il set Mandelbrot.
Vedi anche qui e qui .
Controllo più preciso e animazioni più elaborate
C'è un pacchetto di animazione che sembra abbastanza capace. Non l'ho usato da solo, quindi non posso dare alcun vero consiglio in entrambi i casi.
Io ho visto un paio di buoni esempi di output da questo pacchetto e sembrano abbastanza piacevole. Forse uno dei "punti salienti" è la possibilità di incorporare un'animazione in un PDF.