Depende um pouco do seu objetivo final.
Hack rápido e sujo para demonstrações em tempo real
Usar Sys.sleep(seconds)
um loop em que seconds
indica o número de segundos entre os quadros é uma opção viável. Você precisará definir os parâmetros xlim
e ylim
na sua chamada plot
para fazer com que as coisas se comportem conforme o esperado.
Aqui está um código de demonstração simples.
# 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)
}
Isso funciona muito bem, especialmente usando o X-Windows como o sistema de janelas. Descobri que o Mac quartz()
não é bom, infelizmente.
GIFs animados
Se você precisar de algo que possa ser redistribuído, publicado em uma página da web etc., consulte a write.gif
função no pacote caTools . A exibição da ajuda write.gif
fornece vários exemplos interessantes, incluindo algumas animações - uma com um exemplo bastante interessante usando o conjunto Mandelbrot.
Veja também aqui e aqui .
Controle mais refinado e animações mais sofisticadas
Existe um pacote de animação que parece bastante capaz. Eu mesmo não o usei, então não posso dar nenhuma recomendação real de qualquer maneira.
Eu tenho visto alguns bons exemplos de saída desse pacote e eles olham muito bom. Talvez um dos "destaques" seja a capacidade de incorporar uma animação em um PDF.
tourr:animate_dist
um exemplo dessa abordagem.Uma maneira de ir é usar o excelente pacote de animação de Yihui Xie. Fiz upload de um exemplo muito simples para minha conta pública da caixa de depósito: densityplot (removerei este exemplo em três dias). É isso que você está procurando?
A animação foi criada usando o seguinte código R:
fonte
Por uma questão de integridade, se você precisar disso para uma demonstração em classe, eu também mencionaria o
manipulate
pacote que vem com o RStudio . Observe que este pacote depende da interface do RStudio, portanto, não funcionará fora dele.manipulate
é bem legal porque permite criar rapidamente alguns controles deslizantes para manipular qualquer elemento no gráfico. Isso permitiria fazer algumas demonstrações fáceis e em tempo real na sala de aula.Outros exemplos aqui
fonte
Aqui está outra abordagem:
fonte