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

如何在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&#248;ren ONeill
相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 19:04:56