sweave和ggplot2:完全不生成pdf

我正在尝试创建一个包含用ggplot2完成的一些图形的sweave报告。 尽管我从长远看寻找一些环境 - 我只是在这里使用一个简单的.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中,可以在qplot() print()周围print()或将qplot()的输出分配给某个东西,然后将其打包到print()

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

这应该工作。 我ggplot2在我的sweave文档中使用ggplot2图形。


你必须将它包裹在print()才能使其工作。


其实,虽然以前的两个答案都是正确的,但你的问题是另一回事。

您需要确保整个代码块位于页面的左侧(除函数中的Iundentation外)。 再次,我不知道为什么,但这会给Sweave带来问题。

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

顺便说一句,我今天知道你可以在你的代码中创建一个在sweave文档中的环境(我没有意识到这点,并且会为我节省很多时间)。 良好的旧的计算器,即使你回答一个问题,也能教会你新的东西!

希望这可以帮助。

链接地址: http://www.djcxy.com/p/26907.html

上一篇: sweave and ggplot2: no pdfs generated at all

下一篇: Recommendations for developing Sweave documents