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

Rmd导出Word时调整grid.arrange中ggplot2绘图与表格的尺寸

Rmd输出Word时调整ggplot柱状图与配套表格尺寸的解决方案

核心修改思路

  • 调整Rmd代码块的图形输出参数,放大整体绘图区域尺寸
  • 调整grid.arrange的高度分配比例,给柱状图分配更多展示空间
  • 自定义tableGrob的主题,缩小表格字体、减少单元格边距,压缩表格整体尺寸

修改后可直接运行的代码

首先在你的Rmd代码块头部添加图形尺寸参数:

```{r, fig.width=10, fig.height=8, dpi=300}

然后替换原有代码为以下内容:

library(tidyverse)
library(grid)
library(gridExtra)
# 若运行row_to_names报错,补充加载library(janitor)

# 绘制柱状图
g <- ggplot(mpg, aes(class)) + geom_bar()

# 生成统计表格
dat <- mpg %>% 
  count(class) %>% 
  t() %>%   
  as.data.frame() %>% 
  janitor::row_to_names(row_number = 1)

# 自定义表格主题:缩小字体、减少单元格内边距
small_table_theme <- ttheme_default(
  base_size = 8,
  core = list(padding = unit(c(2, 2), "mm")),
  colhead = list(padding = unit(c(2, 2), "mm"))
)
table <- tableGrob(dat, theme = small_table_theme)

# 组合图与表格:调整高度比例,图占4份、表格占1份
plot2_fin <- grid.arrange(
  arrangeGrob(nullGrob(), g, widths = c(3,8)), 
  arrangeGrob(nullGrob(), table, widths = c(3,18,1)),
  heights = c(4, 1) # 核心修改:调整图和表格的高度占比
)

plot2_fin

参数调整说明

如果输出效果不符合预期,可以自行调整以下参数:

  • 代码块的fig.width、fig.height数值:数值越大整体输出的图形区域越大
  • heights = c(4,1)中的两个数值:第一个对应图的高度占比,第二个对应表格的高度占比,加大第一个数值、缩小第二个数值可以进一步拉大两者尺寸差
  • 表格主题的base_size数值:数值越小表格字体越小,整体表格尺寸也越小

内容的提问来源于stack exchange,提问作者Faith Magut

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:06:04