如何让knitr按图计数器命名并保存生成的图片?
按图编号命名knitr生成的图片
可以通过knitr的内置计数器实现按图顺序编号命名图片,具体方法如下:
核心配置修改
修改knitr::opts_chunk$set中的fig.path参数,使用knitr内置的fig_counter()函数动态生成带编号的路径:
knitr::opts_chunk$set( echo = TRUE, fig.align = "center", fig.pos = "H", out.extra = "", fig.path = function() paste0("figures/fig_", knitr::fig_counter(), "_") )
设置后,文档中每个带标题的图会按顺序生成figures/fig_1_xxx.png、figures/fig_2_xxx.png这类命名的图片文件。
关键注意事项
- 必须给代码块设置
fig.cap(图标题),因为knitr的fig_counter()仅对带有标题的图递增计数。示例代码块写法:{r, fig.cap="汽车数据散点图"} par(mar = c(4, 4, .2, .1)) plot(cars) # a scatterplot - 若需重置计数器,可在指定位置执行
knitr::fig_counter(reset = TRUE)。 - 该方法兼容bookdown和papaja的文档生成逻辑,图编号会与PDF中显示的图序号保持一致。
内容的提问来源于stack exchange,提问作者sinandrei
相关产品推荐
相关产品推荐

