Cela dépend un peu de votre objectif final.
Hack rapide et sale pour des démonstrations en temps réel
L'utilisation Sys.sleep(seconds)
dans une boucle où seconds
indique le nombre de secondes entre les images est une option viable. Vous devrez définir les paramètres xlim
et ylim
dans votre appel plot
pour que les choses se comportent comme prévu.
Voici un code de démonstration 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)
}
Cela fonctionne assez bien, en particulier en utilisant X-Windows comme système de fenêtrage. J'ai trouvé que Mac quartz()
ne fonctionne pas bien, malheureusement.
GIF animés
Si vous avez besoin de quelque chose qui peut être redistribué, publié sur une page Web, etc., regardez la write.gif
fonction dans le paquet caTools . L'affichage de l'aide sur write.gif
donne plusieurs exemples intéressants, y compris quelques animations, dont une avec un bel exemple utilisant l'ensemble Mandelbrot.
Voir aussi ici et ici .
Contrôle plus précis et animations plus sophistiquées
Il existe un package d' animation qui semble assez performant. Je ne l'ai pas utilisé moi-même, donc je ne peux pas donner de vraies recommandations de toute façon.
Je l' ai vu quelques bons exemples de sortie de ce paquet et ils ont l' air assez agréable. L'un des "points forts" est peut-être la possibilité d'incorporer une animation dans un PDF.
tourr:animate_dist
pour un exemple de cette approche.Une façon de procéder consiste à utiliser l'excellent package d' animation de Yihui Xie. J'ai téléchargé un exemple très simple sur mon compte dropbox public: densitéplot (je supprimerai cet exemple dans 3 jours). Est-ce ce que vous recherchez?
L'animation a été créée à l'aide du code R suivant:
la source
Par souci d'exhaustivité, si vous en avez besoin pour une démonstration de classe, je mentionnerais également le
manipulate
package fourni avec RStudio . Notez que ce package dépend de l'interface RStudio, donc il ne fonctionnera pas en dehors de celui-ci.manipulate
est assez cool car il permet de créer rapidement des curseurs pour manipuler n'importe quel élément de l'intrigue. Cela permettrait de faire une démonstration facile et en temps réel en classe.D'autres exemples ici
la source
Voici une autre approche:
la source