在 Rmarkdown 中使用网状结构交叉引用 python 代码块

Cross-reference a python code chunk in Rmarkdown with reticulate

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

的 R 块的内联引用没有问题

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()
```

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


我试过不添加块类型(无花果等)

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

我之前在块中尝试 fig.cap 时一定是犯了一个错误,正如丹尼尔在问题评论中正确建议的那样。再次尝试此操作,我可以 cross-reference 完美地处理所有 HTML、PDF 和文字输出中的 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()
```

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


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

的选项