【问题标题】:How to include a plot in my R/knitr document如何在我的 R/knitr 文档中包含绘图
【发布时间】:2021-03-12 07:30:19
【问题描述】:

这似乎是一个简单的问题,但我无法在任何地方找到解决方案。

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

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

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

【问题讨论】:

    标签: r ggplot2 knitr


    【解决方案1】:

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

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

    如果使用chunk选项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

    【讨论】:

    • 那么我如何用这个解决方案实际生成绘图?如,让它显示在生成的文档中?如果 /Sexpr{} 不起作用,那会怎样?
    • 我想我在第二句话中回答了你的问题:“情节需要以代码块的形式呈现。”
    猜你喜欢
    • 1970-01-01
    • 2014-02-27
    • 2020-05-20
    • 2011-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多