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

使用reticulate的Rmarkdown中如何交叉引用Python代码块生成的图表

解决方法
  • 必须为Python代码块同时设置块标签和fig.cap参数,bookdown的交叉引用逻辑依赖fig.cap生成图表锚点和编号,缺少该参数时不会生成可引用的fig类型锚点,这是你无法正常引用的核心原因。
  • 不需要手动调用plt.show(),knitr会自动捕获reticulate环境生成的matplotlib绘图结果,手动调用plt.show()反而可能在部分版本下导致绘图捕获异常。
  • 交叉引用语法和R代码块生成的图表完全一致,使用\@ref(fig:块标签)即可正常生成带编号的交叉引用。

完整可运行示例

YAML头部配置

---
title: "Python绘图交叉引用测试"
output: bookdown::pdf_document2
---

Python代码块写法

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(10)
y = np.arange(10)
plt.figure()
plt.plot(x, y)

正文引用写法

正文中直接使用:如图\@ref(fig:my-plot)所示,即可生成带编号的交叉引用。

注意:如果块标签包含下划线,部分旧版本bookdown可能识别异常,建议统一使用连字符命名块标签避免冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:27:04