如何在Quarto中用交叉引用编号命名并保存ggplot图形?
在Quarto的R代码中获取交叉引用编号用于文件名
Quarto的交叉引用编号可通过quarto包的工具在R代码中提取,具体实现步骤如下:
- 先确保已安装
quarto包(未安装则运行install.packages("quarto")) - 在代码块中,先获取当前图形的label,再通过
quarto::crossref_ref()提取对应的交叉引用编号 - 用提取到的编号构建文件名,传入
ggsave()即可
完整示例代码:
--- title: "示例文档" format: html --- 在Markdown中我们可以这样交叉引用图形:@fig-my_fig。 ```{r figure_distribution_by_probe_and_session} #| label: fig-my_fig # 加载必要包 library(ggplot2) library(dplyr) library(quarto) # 模拟数据 data <- tibble(x = rep(c("A", "B"), each = 20), y = rnorm(40)) my_figure <- data %>% ggplot(aes(y=y, x=x)) + geom_boxplot() # 获取当前图形的label和对应的编号 fig_label <- knitr::opts_current$get('label') fig_number <- quarto::crossref_ref(fig_label)$ref # 构建文件名 fn <- paste0("Figure_number_", fig_number, ".png") ggsave(filename=fn, plot=my_figure, device="png")
注意:该方法仅在Quarto渲染过程中有效(比如使用`quarto render`命令或RStudio的渲染按钮),直接在R控制台运行代码块会报错,因为`crossref_ref()`依赖Quarto的渲染上下文支持。 内容的提问来源于stack exchange,提问作者Søren ONeill
相关产品推荐
相关产品推荐

