You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Quarto制作双图并排且底部带描述文本的PPT?解决跨页问题

解决Quarto PPT中描述文本跳转到下一页的问题

问题原因

使用layout-ncol:2的代码块生成两张并排图表时,图表会占满当前幻灯片的内容区域,Quarto会自动将后续的描述文本分配到新幻灯片中。

解决方案

通过Quarto的多列布局语法手动规划内容结构,确保图表和描述文本都在同一幻灯片内:

修改后的完整代码

---
title: "iris Presentation"
format: pptx
---
```{r, include=FALSE}
library(tidyverse)

# 生成每个物种的直方图
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)

# 生成随机散点图
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())

# 合并为数据框
df <- tibble(spec = spec_name, 
             plot1 = list_hist, 
             plot2 = list_random)
#| output: asis
res <- pmap_chr(df, \(spec, plot1, plot2) {
  knitr::knit_child(text = c(
    paste0("## ", spec, " - Summary"),
    
    "::: {.layout}",
    "::: {.column width=50%}",
    "```{r}",
    "#| echo: false",
    "plot1",
    "```",
    ":::",
    "::: {.column width=50%}",
    "```{r}",
    "#| echo: false",
    "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')
### 关键调整说明
- 用`::: {.layout}`和`::: {.column width=50%}`替代代码块内的`layout-ncol:2`,手动控制两张图表的并排布局,避免图表占满整个幻灯片高度。
- 描述文本直接放在布局区块之后,会作为当前幻灯片的底部内容保留,不会被拆分到下一页。

内容的提问来源于stack exchange,提问作者Bachi Shashikadze
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 08:29:55