r-如何使用RMarkdown在波束形成器演示中从一块代码创建两个图



我想从RMarkdown文档中的一块R代码创建几个绘图。输出格式是beamer演示,我在RStudio中点击编织按钮来编织文档。这里是一个最小的例子,其中只创建了一张带有一个绘图的幻灯片,而省略了第二个绘图。我想看两张幻灯片,每张幻灯片有一个情节。

---
title: "2 Plots"
output: beamer_presentation
---
# Slide with Plot
```{r cars, echo = TRUE, eval = TRUE}
plot(cars$speed)
plot(cars$dist)
```

您只需要输出代码就可以在绘图的代码之间开始新的幻灯片。例如,

---
title: "2 Plots"
output: beamer_presentation
---
# Slide with Plot
```{r cars, echo = -2, eval = TRUE}
plot(cars$speed)
knitr::asis_output("nn# slide 2n")
plot(cars$dist)
```

请注意,echo = -2表示不要重复第二条语句,即写出第二个幻灯片标题的语句。

我建议编写一个小函数来封装asis_output行,这样更容易键入。例如,

# Slide 3
```{r eval = TRUE, echo = c(-1,-3)}
slide <- function(title)
  knitr::asis_output(paste("nn#", title, "n"))
plot(cars$speed)
slide("Slide 4")
plot(cars$dist)
```

如果asis_output处于for循环的中间,您可能会发现它不能正常工作;有关详细信息,请参阅其帮助页面。

如果你想在单独的幻灯片上绘制图,你必须将图放在单独的块和幻灯片中:

---
title: "2 Plots"
output:
  beamer_presentation: default
  ioslides_presentation: default
---
# Slide with first Plot
```{r cars, echo = TRUE, eval = TRUE}
plot(mtcars$cyl)
```
# Slide with second Plot
```{r cars2, echo = TRUE, eval = TRUE}
plot(mtcars$hp)
```

最新更新