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