如何在我的 R/knitr 文档中包含绘图

How to include a plot in my R/knitr document

这似乎是一个简单的问题,但我到处都找不到解决方案。

我正在使用 Knitr 包在 R 中编写一个 .Rnw 文档,我打算在最后编译成 .pdf 格式。我希望它包含一些图,最好是用 ggplot2 包制作的图,因为它看起来是最简单的解决方案。但是,我不能强制 R 在最终文档中包含一个图。代码不是图形,而是在绘图应位于的位置写入“list()”。我错过包裹了吗?我写错了吗?这是代码的相关部分:

<<echo=FALSE>>=
library(ggplot2)
HDplot <- qplot(H,D)
@
\begin{figure}
\Sexpr{HDplot}
\end{figure}

(问题不在于绘图本身,因为 H 和 D 是一组值,可以在文档外绘制成完美的图形)

\Sexpr{} 中的内联 R 表达式无法处理绘图。绘图需要在代码块中呈现,例如,

\begin{figure}
<<echo=FALSE>>=
library(ggplot2)
HDplot <- qplot(H,D)
HDplot
@
\end{figure}

如果您使用块选项 fig.cap 提供图形标题,将自动生成 figure 环境,例如,

<<echo=FALSE, fig.cap="A nice plot.">>=
library(ggplot2)
HDplot <- qplot(H,D)
HDplot
@

您还可以在代码块中生成绘图,但将其隐藏在代码块中,然后在其他地方显示。这是 R Markdown 中的示例,但思路是相同的(使用 knitr::fig_chunk()):https://bookdown.org/yihui/rmarkdown-cookbook/fig-chunk.html