Как создать анимацию в выводе html используя R Markdown - PullRequest
1 голос
/ 30 октября 2019

Вот список того, что я пробовал.

---
title: "test_gif"
output: html_document
---


``` {r, animation.hook='gifski', dev='png', interval=0.2}
library(gganimate)
ggplot(airquality, aes(Day, Temp, group = Month)) + 
  geom_line() + 
  transition_reveal(Month)
```

Ошибка: выход из строки 8-12 (test_gif.Rmd) Ошибка в hook_animation (параметры) (x, параметры): использоватьhook_gifski (), блок кода должен генерировать изображения «png» вместо «gif». Вызовы: ... hook_plot -> hook_plot_md_base -> hook_plot_html -> Выполнение остановлено

Хотя я использовал dev = 'png', как упомянуто здесь https://yihui.name/en/2018/08/gifski-knitr/, Я не смог заставить его работать.

Затем я попытался использовать FFmpeg Renderer

---
title: "test_gif"
output: html_document
---


```{r, animation.hook='ffmpeg', interval=0.2}
library(gganimate)
ggplot(airquality, aes(Day, Temp, group = Month)) + 
  geom_line() + 
  transition_reveal(Month) -> p
animate(p)
```

Ошибка: выполнение: ffmpeg -y -r 5 -i test_gif_files / figure-html / figure-chunk-1-% d.gif -b: v 1M -crf 10 test_gif_files / figure-html / unnamed-chunk-1.webm ffmpeg версия 4.2.1 Copyright (c) 2000-2019 разработчики FFmpeg, созданные с использованием Apple LLVM версии 10.0.0 (clang-1000.11.45.5) конфигурация: --prefix = / usr / local / Cellar / ffmpeg / 4.2.1 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc = clang --host-cflags = '- I / Library / Java / JavaVirtualMachines / accepttopenjdk-12.0.1.jdk / Contents / Home / include -I / Библиотека / Java / JavaVirtualMachines / accepttopenjdk-12.0.1.jdk / Содержание / Главная / include / darwin'--host-ldflags = --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex--enable-videotoolbox --disable-libjack --disable-indev = jack --enable-libaom --enable-libsoxr libavutil 56. 31.100 / 56. 31.100 libavcodec 58. 54.100 / 58. 54.100 libavformat 58. 29.100 / 58. 29.100 libavdevice 58. 8.100 / 58. 8.100 libavfilter 7. 57.100 / 7. 57.100 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 5.100 / 5. 5.100 libswresample 3. 5.100 / 3. 5.100 libpostproc 55. 5.100 /55. 5.100 test_gif_files / figure-html / unnamed-chunk-1-% d.gif: Нет такого файла или каталога | ........................ ......................................... |100% обычный текст без кода R

выходной файл: test_gif.knit.md

/ usr / local / bin / pandoc + RTS -K512m -RTS test_gif.utf8.md --to html4--из разметки + autolink_bare_uris + tex_math_single_backslash + smart --output test_gif.html --email-obfuscation none - самодостаточный --standalone --section-divs --template /Library/Frameworks/R.framework/Versions/3.5/Resources/library/rmarkdown/rmd/h/default.html --no-highlight --variable highlightjs = 1 --variable 'theme: bootstrap' --include-in-header / var / folder / pv / cs874rmn7dj9n08xdyc7s3nm0000gn / T//RtmpOqkC3V/rmarkdown-str28173033d049.html --mathjax --variable 'mathjax-url: https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML' --lua-filter /Library/Frameworks/R.framework/Versions/3.5/Resources/library/rmarkdown/rmd / lua / pagebreak.lua --lua-filter /Library/Frameworks/R.framework/Versions/3.5/Resources/library/rmarkdown/rmd/lua/latex-div.lua файл test_gif_files / figure-html / unnamed-chunk-1.webm не найден в пути к ресурсу Ошибка: преобразование документа pandoc завершилось ошибкой 99 Execution halted

Затем я следовал этому методу, чтобы сохранить рисунок с помощью gifski :: save_gif и затем отобразить его в следующем фрагменте, используя include_graphics. https://community.rstudio.com/t/make-an-rstudio-notebook-inline-animation-that-loops-with-gganimate/27489/2

---
title: "test_gif"
output: html_document
---


```{r}
library(gganimate)
library(gifski)
ggplot(airquality, aes(Day, Temp, group = Month)) + 
  geom_line() + 
  transition_reveal(Month) -> p
animate(p)
```

```{r, animation.hook='gifski', interval = 0.2}
p
```

Ошибка (та же): выход из строк 18-19 (test_gif.Rmd) Ошибка в hook_animation (параметры) (x, параметры): чтобы использовать hook_gifski (), фрагмент кода долженгенерировать изображения «png» вместо «gif». Вызовы: ... hook_plot -> hook_plot_md_base -> hook_plot_html -> Выполнение остановлено

Моя конечная цель - создать анимацию в конечном html-документе без создания промежуточных временных файлов. Я был бы счастлив, даже если есть какой-либо другой альтернативный метод, чтобы сделать эту работу.

1 Ответ

2 голосов
/ 30 октября 2019

С пакетом gganimate вам не нужно устанавливать параметр чанка animation.hook. Этого достаточно:

```{r, dev='png', interval=0.2}
library(gganimate)
ggplot(airquality, aes(Day, Temp, group = Month)) + 
  geom_line() + 
  transition_reveal(Month)
```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...