Es hängt ein wenig davon ab, was Ihr Endziel ist.
Schneller und schmutziger Hack für Echtzeit-Demonstrationen
Die Verwendung Sys.sleep(seconds)
in einer Schleife, in der seconds
die Anzahl der Sekunden zwischen Frames angegeben wird, ist eine praktikable Option. Sie müssen die Parameter xlim
und ylim
in Ihrem Aufruf festlegen , plot
damit sich die Dinge wie erwartet verhalten.
Hier ist ein einfacher Demonstrationscode.
# 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)
}
Dies funktioniert ziemlich gut, insbesondere wenn X-Windows als Fenstersystem verwendet wird. Ich habe festgestellt, dass Macs quartz()
leider nicht gut spielen.
Animierte GIFs
Wenn Sie etwas benötigen, das neu verteilt, auf einer Webseite usw. veröffentlicht werden kann, sehen Sie sich die write.gif
Funktion im caTools- Paket an. Das Anzeigen der Hilfe auf write.gif
enthält einige schöne Beispiele, darunter einige Animationen - eine mit einem sehr schönen Beispiel, das das Mandelbrot-Set verwendet.
Siehe auch hier und hier .
Feinere Steuerung und schickere Animationen
Es gibt ein Animationspaket , das ziemlich leistungsfähig aussieht. Ich habe es jedoch nicht selbst verwendet, daher kann ich keine wirklichen Empfehlungen geben.
Ich habe einige gute Beispiele für die Ausgabe dieses Pakets gesehen und sie sehen ziemlich gut aus. Vielleicht ist eines der "Highlights" die Möglichkeit, eine Animation in ein PDF einzubetten.
tourr:animate_dist
als Beispiel für diesen Ansatz.Eine Möglichkeit besteht darin, das hervorragende Animationspaket von Yihui Xie zu verwenden. Ich habe ein sehr einfaches Beispiel in mein öffentliches Dropbox-Konto hochgeladen: Densityplot (ich werde dieses Beispiel in 3 Tagen entfernen). Suchst du danach?
Die Animation wurde mit dem folgenden R-Code erstellt:
quelle
Nur der Vollständigkeit halber würde ich, wenn Sie dies für eine Klassendemonstration benötigen, auch das
manipulate
Paket erwähnen , das mit RStudio geliefert wird . Beachten Sie, dass dieses Paket von der RStudio-Schnittstelle abhängig ist, sodass es außerhalb nicht funktioniert.manipulate
ist ziemlich cool, weil es ermöglicht, schnell einige Schieberegler zu erstellen, um jedes Element im Plot zu manipulieren. Dies würde eine einfache Demonstration in Echtzeit im Unterricht ermöglichen.Andere Beispiele hier
quelle
Hier ist ein anderer Ansatz:
quelle