Это немного зависит от вашей конечной цели.
Быстрый и грязный хак для демонстраций в реальном времени
Использование Sys.sleep(seconds)
в цикле где seconds
указывает количество секунд между кадрами является жизнеспособным вариантом. Вам необходимо установить xlim
и ylim
параметры в вызове , чтобы plot
делать вещи так , как ожидалось.
Вот простой демонстрационный код.
# 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)
}
Это работает довольно хорошо, особенно с использованием X-Windows в качестве оконной системы. Я обнаружил, что Mac quartz()
не играет хорошо, к сожалению.
Анимированные картинки
Если вам нужно что-то, что можно распространять, публиковать на веб-странице и т. Д., Посмотрите на write.gif
функцию в пакете caTools . Отображение справки write.gif
дает несколько хороших примеров, в том числе несколько анимаций - одна с довольно хорошим примером с использованием набора Мандельброта.
Смотрите также здесь и здесь .
Более тонкая настройка управления и более красивые анимации
Есть анимационный пакет, который выглядит довольно способным. Я сам этим не пользовался, поэтому не могу дать никаких реальных рекомендаций в любом случае.
Я уже видел несколько хороших примеров выхода из этого пакета , и они выглядят довольно хорошо. Возможно, одним из «ярких моментов» является возможность вставлять анимацию в PDF.
tourr:animate_dist
пример такого подхода.Один из способов - использовать отличный пакет анимации от Yihui Xie. Я загрузил очень простой пример в свою публичную учетную запись Dropbox: плотность (я удалю этот пример через 3 дня). Это то, что вы ищите?
Анимация была создана с использованием следующего кода R:
источник
Просто для полноты, если вам нужно это для демонстрации класса, я бы также упомянул
manipulate
пакет, который поставляется с RStudio . Обратите внимание, что этот пакет зависит от интерфейса RStudio, поэтому он не будет работать вне его.manipulate
Это довольно круто, потому что позволяет быстро создавать слайдеры для манипулирования любым элементом на графике. Это позволило бы провести небольшую демонстрацию в реальном времени в классе.Другие примеры здесь
источник
Вот еще один подход:
источник