sweave 和 ggplot2:根本没有生成任何pdf文件
-
26-09-2020 - |
题
我正在尝试创建一个 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,即使在回答问题时也要教你一些新的东西!希望这有帮助。
不隶属于 StackOverflow