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
相关产品推荐
相关产品推荐

