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

如何在RMarkdown的PDF输出中控制表格与图表的排版位置?

R Markdown生成PDF:表格/图表位置未按预期显示问题

我查阅了大量相关文章和讨论帖,尝试了无数方法但仍未解决问题,仅取得了些许进展,部分表格和图表仍未按预期位置显示。若需补充或删减代码、输出示例来优化问题,请告知我。

期望实现的效果

  • 用一行文字说明表格或图表
  • 紧随其后展示对应的表格或图表
  • 重复上述步骤

我的代码及操作流程

YAML配置与全局设置

---
    date: "`r format(Sys.time(), '%d %B, %Y')`"
output:
  pdf_document:
    latex_engine: pdflatex
    keep_tex: yes
    extra_dependencies: flafter
header-includes: \usepackage{float}
---
```{r, echo=FALSE}
knitr::opts_chunk$set(fig.pos = 'H')
### 表格渲染步骤
先编写生成表格的代码(未展示),然后添加说明文字,再用代码块渲染表格:
这是各州用电需求的数值汇总表。
```r
```{r, echo=FALSE, warning=FALSE,message=FALSE, fig.pos="H"}
kbl(daily_num_sumaries, caption = "Electricity Demand: Numerical Summaries", booktabs = T) %>%
kable_styling(font_size = 12, latex_options = c("striped", "scale_down"))
(注:原始代码中`%>`存在语法错误,应为`%>%`)

### 图表渲染步骤
接着编写生成图表的代码(未展示),添加说明文字后用代码块渲染图表:
这是一个箱线图。
```r
```{r demand_boxplot, echo=FALSE, fig.pos="H"}
plot(demand_boxplot)
我多次重复上述步骤,但PDF输出并未按预期顺序渲染,请问我哪里出错了?

## 补充示例数据集
```r
start_date <- as.Date("2020/01/01") 

df <- data.frame(
  REGION = rep(c("NSW", "VIC", "QLD", "SA", "TAS"), each=50),
  DATE = seq(start_date, by = "day", length.out = 250),
  DAILY_COST = runif(250, min=0, max=743884569),
  DAILY_DEMAND = runif(250, min = 0, max = 337297)
)

内容的提问来源于stack exchange,提问作者K-J

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 07:03:31