Kon*_*rad 5 pdf animation r knitr r-markdown
我想使用LaTeX 动画包生成PDF格式的动画图形.
---
title: "test_animations"
author: "Colours"
date: "27/10/2017"
output:
pdf_document:
includes:
in_header: header_ani.tex
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
pacman::p_load(gganimate, gapminder, ggplot2)
```
## Test animations
```{r sample_ani, fig.show='animate', message=FALSE, warning=FALSE}
p2 <- ggplot(gapminder, aes(gdpPercap, lifeExp, size = pop)) +
geom_point() +
geom_point(aes(frame = year), color = "red") +
scale_x_log10()
gganimate(p2, saver = "gif")
```
Run Code Online (Sandbox Code Playgroud)
header_ani.tex\usepackage{animate}
Run Code Online (Sandbox Code Playgroud)
警告:忽略未知的美学:框架
从第20-25行退出(second_animation.Rmd)错误:找不到ffmpeg命令.您应该更改animation.fun挂钩选项或安装启用了libvpx的ffmpeg.执行停止
当chunk选项fig.show ='animate'并且从代码块产生多个图时,所有图将被组合成动画.对于LaTeX输出,LaTeX包animate用于在PDF中创建动画. 对于HTML/Markdown输出,默认情况下FFmpeg用于创建WebM视频.请注意,在安装FFmpeg时必须启用libvpx支持.Linux和Windows用户只需按照FFmpeg网站上的下载链接(libvpx已在二进制文件中启用).对于OS X用户,您可以通过Homebrew安装FFmpeg
ffmpeg 应该用于转换为html.是因为RMarkdown的管道?
强迫在线上某处使用ffmpeg?
是否可以在RMarkdown文档中使用animate包并避免使用ffmpeg,以便获得的PDF具有以下组件,其中包含animate包含的anrtol.
(不是我想要生成的图表,而是显示动画图形应该如何嵌入到PDF中,取自上面引用的动画包文档.)
根据类似的答案(Knitr rmarkdown 中的绘图动画)和与LaTeX 相关的讨论,我提出了以下解决方案:
---
title: "test_animations"
author: "Colours"
date: "27/10/2017"
classoption: landscape
output:
pdf_document:
keep_tex: true
includes:
in_header: header_ani.tex
---
```{r setup, include=FALSE}
Vectorize(require)(package = c("knitr"),
character.only = TRUE)
opts_chunk$set(echo = FALSE,
cache = TRUE)
pacman::p_load(gganimate, gapminder, ggplot2)
```
## Test animations
```{r sample_ani, message=TRUE, warning=TRUE, echo=TRUE, }
p2 <- ggplot(gapminder, aes(gdpPercap, lifeExp, size = pop)) +
geom_point() +
geom_point(aes(frame = year), color = "red") +
scale_x_log10()
gganimate(p2, filename = "animation2.gif", title_frame = TRUE) -> amimate
```
<!-- Notes on the answer: https://tex.stackexchange.com/a/240387/123504 -->
```{r convert_shele, echo=TRUE, message=TRUE, warning=TRUE, paged.print=FALSE}
# Extra options for resize can be added
system(command = "convert -coalesce animation2.gif something.png")
```
\animategraphics[loop,controls,width=\linewidth]{12}{something-}{0}{12}
# Latex code generating animation
Figures 0 - 12 should reflect frames
~~~
\animategraphics[loop,controls,width=\linewidth]{12}{something-}{0}{12}
~~~
Run Code Online (Sandbox Code Playgroud)
头文件如所讨论的那样。该代码生成带有所需控件的动画图表。
生成的动画的快照以及可用的控件。
convert命令。我认为这不是最佳选择,因为它涉及来回转换图表。{12}{something-}{0}{12}必须手动设置 中的值,其中第一个数字反映帧速率(降低将减慢动画速度)something-对应于通过convert命名生成的文件something-0.png ... something-n.png并{0}{12}对应于文件编号。