Como posso criar uma apresentação do PowerPoint com apresentação em quarto, com dois gráficos lado a lado, e incluir texto descritivo na parte inferior de cada slide (como mostrado na captura de tela)? O problema é que o texto está aparecendo no segundo slide em vez de na parte inferior dos gráficos no mesmo slide.
---
title: "iris Presentation"
format: pptx
---
parts of the code are from: https://github.com/quarto-dev/quarto-cli/discussions/2403
```{r, include=FALSE}
library(tidyverse)
# Create histogram for each species
spec_name <- unique(iris$Species)
make_hist <- function(spec) {
iris |>
filter(Species == spec) |>
ggplot(aes(x = Petal.Length)) +
geom_histogram(bins = 10, fill = "steelblue", color = "white") +
labs(title = paste("Petal Length Histogram -", spec))
}
list_hist <- map(spec_name, make_hist)
# Create a second set of plots (random scatter plots)
make_random_plot <- function() {
tibble(x = rnorm(50), y = rnorm(50)) |>
ggplot(aes(x, y)) +
geom_point(color = "darkorange") +
labs(title = "Random Scatter Plot")
}
list_random <- map(spec_name, ~ make_random_plot())
# Combine into a data frame
df <- tibble(spec = spec_name,
plot1 = list_hist,
plot2 = list_random)
```
```{r}
#| output: asis
res <- pmap_chr(df, \(spec, plot1, plot2) {
knitr::knit_child(text = c(
paste0("## ", spec, " - Summary"),
"```{r}",
"#| echo: false",
"#| layout-ncol: 2",
"plot1",
"plot2",
"```",
"",
paste("This slide shows the distribution of Petal Length for", spec,
"alongside a comparison scatter plot of random values.")
), envir = environment(), quiet = TRUE)
})
cat(res, sep = '\n')
```
Saída desejada:
O problema é que
quarto
, mais precisamente,pandoc
ele suporta apenas um número limitado de layouts de slides (para uma visão geral dos layouts suportados, consulte a documentação ), ou seja, para exibir dois gráficos lado a lado, existe o"Two Content"
layout ou o"Comparison"
layout. No entanto, não existe um layout de slide que permita ter dois gráficos lado a lado e um conteúdo de texto abaixo dos gráficos.Considerando essas limitações, uma opção para atingir o resultado desejado seria criar o conteúdo como um gráfico, ou seja, no código abaixo, eu uso
patchwork
para combinar os gráficos e a anotação, enquanto para esta última eu usogridtext::textbox_grob
. Isso está longe de ser o ideal, pois não é possível editar a anotação no PowerPoint.