Как создать два графика из одного куска кода в презентации проектора с помощью RMarkdown? - PullRequest
1 голос
/ 05 марта 2020

Я хотел бы создать несколько графиков из одного фрагмента кода R в документе RMarkdown. Выходной формат - beamer-презентация, я вяжу документ, нажимая кнопку вязания в RStudio. Вот минимальный пример, когда создается только один слайд с одним графиком, а второй график пропускается. Я хотел бы видеть два слайда с одним сюжетом каждый.

---
title: "2 Plots"
output: beamer_presentation
---

# Slide with Plot
```{r cars, echo = TRUE, eval = TRUE}
plot(cars$speed)
plot(cars$dist)
```

Ответы [ 2 ]

2 голосов
/ 05 марта 2020

Вам просто нужно вывести код, чтобы начать новый слайд между кодом для графиков. Например,

---
title: "2 Plots"
output: beamer_presentation
---

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

Обратите внимание, что echo = -2 говорит, что не следует повторять второе утверждение, которое является записью заголовка второго слайда.

Я бы рекомендовал написать немного функция, чтобы обернуть строку asis_output, чтобы ее было легче набирать. Например,

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

Вы можете обнаружить, что asis_output не работает должным образом, если он находится в середине цикла for; подробности см. на странице справки.

1 голос
/ 05 марта 2020

Если вы хотите, чтобы графики были на отдельных слайдах, вы должны поместить графики в отдельные фрагменты и слайды:

---
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)
```
...