Создание фильма от ряда графиков в [закрытом] R

Просто попробуйте

$("._statusDDL").val("2");

а не

$("._statusDDL").val(2);
48
задан Ryan R. Rosario 19 August 2009 в 06:27
поделиться

6 ответов

Вот один метод, который я нашел с помощью справки R:

Чтобы создать отдельные кадры изображения:

jpeg("/tmp/foo%02d.jpg")
for (i in 1:5) {
  my.plot(i)
}
dev.off()

Чтобы создать фильм, сначала установите ImageMagick . Затем вызовите следующую функцию (которая вызывает "convert", я полагаю, часть ImageMagick):

make.mov <- function(){
     unlink("plot.mpg")
     system("convert -delay 0.5 plot*.jpg plot.mpg")
}

Или попробуйте использовать функцию ffmpeg, как описано в этой статье (я обнаружил, что это дает более точные результаты): ffmpeg -r 25 -qscale 2 -i tmp / foo% 02d.jpg output.mp4

Может потребоваться небольшая настройка, но это казалось довольно простым, когда все было установлено.

Конечно, везде, где вы видите "jpg" "или" jpeg ", вы можете заменить GIF или PNG на свой вкус.

40
ответ дан 26 November 2019 в 18:58
поделиться

Взгляните на пакет animation , созданный Yihui Xie , либо на пакет биокондуктора EBImage (? Animate).

14
ответ дан 26 November 2019 в 18:58
поделиться

Если вы заключите свой R-скрипт в более крупный Perl / Python / etc. скрипт, вы можете сшивать графики вместе с вашим любимым инструментом сшивания изображений из командной строки.

Чтобы запустить ваш R-скрипт со скриптом-оболочкой, используйте метод R CMD BATCH .

2
ответ дан 26 November 2019 в 18:58
поделиться

Я думаю, вы также можете сделать это с помощью функции write.gif в библиотеке caTools. Сначала вам нужно превратить свой график в многокадровое изображение. Я не знаю, как это сделать. Кто угодно? Бьюллер?

Классическим примером анимированного GIF является этот код, который я не писал, но некоторое время назад я вел блог о :

library(fields) # for tim.colors
library(caTools) # for write.gif
m = 400 # grid size
C = complex( real=rep(seq(-1.8,0.6, length.out=m), each=m ), imag=rep(seq(-1.2,1.2, length.out=m), m ) )
C = matrix(C,m,m)

Z = 0
X = array(0, c(m,m,20))
for (k in 1:20) {
Z = Z^2+C
X[,,k] = exp(-abs(Z))
}

image(X[,,k], col=tim.colors(256)) # show final image in R
write.gif(X, 'Mandelbrot.gif', col=tim.colors(256), delay=100)

Авторство кода принадлежит Яреку Тушински, доктору философии.

10
ответ дан 26 November 2019 в 18:58
поделиться

Я не уверен, что это возможно в R. Я однажды делал проект, когда точки данных из R были экспортированы в MySQL база данных и приложение Flex / Flash собрали эти точки данных и предоставили анимированные визуализации.

0
ответ дан 26 November 2019 в 18:58
поделиться

Я снял несколько фильмов, используя функцию создания слайд-шоу XNview (бесплатная программа просмотра графики). Я хотел показать тенденции во времени с помощью пространственных данных, поэтому я просто создал серию графиков, названных последовательно [paste () - ваш друг для всех видов каллистетики именования], затем загрузил их в диалог слайд-шоу XNviews и установил несколько переменных таймера, вуаля. Потребовалось 5 минут, чтобы научиться это делать и создать исполняемую графику.

0
ответ дан 26 November 2019 в 18:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: