我正在尝试创建一个 sweave 报告,其中包含一些使用 ggplot2 完成的图形。虽然我正在寻找一些长期运行的环境 - 我只是在这里使用一个简单的 .Rnw 文件,其中只包含代码和绘图

 \documentclass[a4paper]{article}
 \SweaveOpts{echo=FALSE}
 \usepackage{a4wide}

  \begin{document}

  \begin{figure}[htbp]
  \begin{center}
 <<>>=
 library(ggplot2)
 x=rnorm(100)
 qplot(x)

 @
 \caption{My Graph}
 \end{center}
  \end{figure}
\end{document}

不幸的是,图表没有创建,我只得到损坏的 .pdf 和 .eps 文件。尽管我得到了一个不错的 .tex 文件,除了图形之外,它似乎可以工作。我使用以下基本代码来创建它:

 Sweave("myfile.Rnw")

我刚刚在网上发现了一些较旧的帖子,正在讨论透明度和 sweave / ggplot2 的问题,但没有任何帮助。我也尝试过放松套餐,但也没有帮助。顺便问一下,decumar 包有什么消息吗?

有帮助吗?

解决方案

qplot() 产生对象,而不是图形输出。当你运行它时,它看起来似乎是这样,但那是因为没有赋值,R 会自动打印输出 qplot(). 。要将其集成到 Sweave 中,请包装 print() 大约 qplot(), ,或分配输出 qplot() 到某物,然后将其包裹起来 print().

...
<<fig = T, echo = F>>=
 library(ggplot2)
 x=rnorm(100)
 p <- qplot(x)
 print(p)
@
...

那应该有效。我用 ggplot2 我的 sweave 文档中一直都有图形。

其他提示

你必须把它包裹起来 print() 使其在 sweave 中工作。

实际上,虽然先前的答案都是正确的,但你的问题是别的。

您需要确保整个代码块位于页面左侧(除了函数中的IURIENTION)。再次,我不知道为什么这会导致牛排的问题。

确保页面左侧的所有代码(和用于代码块的页眉/页脚)(并添加打印语句),然后您的示例适用于我。

顺便提一下,我今天学到了您可以在续订文档中围绕您的代码创建环境(我不知道,并将挽救我很多时间)。好老stackoverflow,即使在回答问题时也要教你一些新的东西!

希望这有帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top