首页 > 解决方案 > 使用网状交叉引用 Rmarkdown 中的 python 代码块

问题描述

我有一个 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()
```

如图\@ref(fig:my-plot)……


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

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

标签: pythonrr-markdownreticulate

解决方案


fig.cap正如丹尼尔在问题评论中正确建议的那样,我之前在块中尝试时一定犯了错误。python再次尝试这个,我可以在所有 HTML、PDF 和 word 输出中完美地交叉引用该块。更新后的 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 标头中的每个输出都需要不同的bookdown::选项。对于 PDF ( bookdown::pdf_document2),对于 word ( bookdown::word_document2) 和 Rmdformats 在我的情况下,选项use_bookdone: true.


推荐阅读