Я рассматриваю возможности создания анимации в Р. Пакет {Animation}, по-видимому, является в основном платформой R для ffmpeg и imagemagick. Единственная ссылка, которую я нашел для создания отдельных кадров изображения, - это вставка plot()
внутри цикла. Но это кажется невыполнимо медленный процесс для получения более сложных участков с учетом низкой производительности скорость png()
визуализатора, особенно для участков, включая объекты карты - например:Создание анимации в R
library(maptools)
data(wrld_simpl)
starttime = Sys.time()
for(i in 1:10){
png(paste('frames/', i, '.png', sep=''))
plot(wrld_simpl, col='grey85', bg = 'white', border='white')
points(sample(-180:180, 50), sample(-90:90, 50), col='red', pch=16, cex=2)
title('poxy map')
dev.off()
}
print(Sys.time() - starttime)
получают 10 кадров и:
Time difference of 9.763794 secs
Я не понимаю, почему R так медленно при рендеринге - при такой скорости потребуется 45 минут или около того, чтобы сделать 2-минутное видео со скоростью 25 кадров в секунду, что кажется медленным для этого относительно простого примера карты. Обертка с apply
не быстрее. Кто-нибудь знает способ обернуть plot
более эффективно или, возможно, сохранить сюжет на полпути после того, как будут отображены неизменные элементы?
Хотя я только что заметил [это] (http://stackoverflow.com/questions/11611456/r-save-images-to-create-animation-of-plot-incrementally -generated-with-large-num? rq = 1), поэтому мой вопрос может быть дубликатом. – geotheory
'plot (wrld_simpl)' на самом деле выводит много сегментов ... вы можете каким-то образом преобразовать его в растровый слой; rasterImage должен быть намного более эффективным с достойным разрешением. – baptiste
Достаточно честно. Я просто понимаю, что по-прежнему много дублирования при перезагрузке. Комментарии в другом месте предполагают, что «ggplot2 :: ggsave» - это способ достичь этого, о котором я расскажу. – geotheory