To zależy trochę od tego, jaki jest twój cel końcowy.
Szybki i brudny hack do demonstracji w czasie rzeczywistym
Użycie Sys.sleep(seconds)
w pętli, w której seconds
wskazuje liczbę sekund między ramkami, jest realną opcją. Musisz ustawić parametry xlim
i ylim
w swoim wywołaniu, plot
aby wszystko działało zgodnie z oczekiwaniami.
Oto prosty kod demonstracyjny.
# 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)
}
Działa to całkiem dobrze, szczególnie przy użyciu X-Windows jako systemu okienkowego. Przekonałem się, że Mac quartz()
nie gra niestety nieźle.
Animowane GIF-y
Jeśli potrzebujesz czegoś, co można rozpowszechnić, opublikować na stronie internetowej itp., Spójrz na write.gif
funkcję w pakiecie caTools . Wyświetlanie pomocy write.gif
daje kilka fajnych przykładów, w tym kilka animacji - jedna z całkiem dobrym przykładem przy użyciu zestawu Mandelbrota.
Zobacz także tutaj i tutaj .
Bardziej precyzyjne sterowanie i bardziej zaawansowane animacje
Istnieje pakiet animacji , który wygląda całkiem sprawnie. Jednak sam go nie użyłem, więc nie mogę dać żadnych prawdziwych rekomendacji.
Ja już widziałem kilka dobrych przykładów wyjścia z tego pakietu i wyglądają bardzo ładne. Być może jedną z „najważniejszych cech” jest możliwość osadzenia animacji w pliku PDF.
tourr:animate_dist
przykład tego podejścia.Jednym ze sposobów jest skorzystanie z doskonałego pakietu animacji autorstwa Yihui Xie. Przesłałem bardzo prosty przykład na moje publiczne konto Dropbox : gęstość wykresu ( usunę ten przykład za 3 dni). Czy tego szukasz?
Animacja została utworzona przy użyciu następującego kodu R:
źródło
Dla kompletności, jeśli potrzebujesz tego do demonstracji klasowej, chciałbym również wspomnieć o
manipulate
pakiecie, który jest dostarczany z RStudio . Zauważ, że ten pakiet jest zależny od interfejsu RStudio, więc nie będzie działał poza nim.manipulate
jest całkiem fajny, ponieważ pozwala szybko utworzyć niektóre suwaki do manipulowania dowolnym elementem na wykresie. Pozwoliłoby to na przeprowadzenie łatwej demonstracji w klasie w czasie rzeczywistym .Inne przykłady tutaj
źródło
Oto inne podejście:
źródło