使用 reticulate 交叉引用 Rmarkdown 中的 python 代码块

A_M*_*ame 5 python r r-markdown reticulate

我有一个 Rmarkdown 文档,其中包含一些使用该reticulate库的 python 代码块。代码执行输出完美;但是,我如何使用其标签交叉引用文本中生成的绘图?我正在使用bookdown::pdf_documents2etc,并且使用标准的 R 块的内联引用没有问题\@ref(fig:my-plot)

MWE 是:


```{python, my-plot}
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(10)
y = np.arange(10)
plt.figure()
plt.plot(x, y)
plt.show()
```
Run Code Online (Sandbox Code Playgroud)

图中\@ref(fig:my-plot)....


我尝试过不预先添加块类型(图等)

我知道我可以将图像保存到文件中并将其作为后续 R 块包含在内knitr,但最好单独通过 python 块来完成此操作。

A_M*_*ame 2

fig.cap正如丹尼尔在问题评论中正确建议的那样,我之前在该块中尝试时一定犯了错误。再次尝试,我可以在所有 HTML、PDF 和 Word 输出中完美地交叉引用该python块。更新后的 MWE 为:

```{python, my-plot, fig.cap="My Caption"}
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(10)
y = np.arange(10)
plt.figure()
plt.plot(x, y)
plt.show()
```
Run Code Online (Sandbox Code Playgroud)

图中\@ref(fig:my-plot)...


YAML 标头中的每个输出都需要不同的bookdown::选项。在我的例子中,对于 PDF ( bookdown::pdf_document2)、word ( bookdown::word_document2) 和 Rmd 格式,选项为use_bookdone: true.