4

我想用我用 R 获得的图形制作一份报告。在这里,我向你展示了用 R 制作的site_rose(site_ref)site_time_series(site_ref)我设计的图像。 在此处输入图像描述

在此处输入图像描述

但是在运行 sweave('Profile.Rnw') 并获得 Profile.tex 之后,我获得了 Profile-002.pdf 和 Profile-003.pdf 这最后两个文档的大小为 0KB。所以我得到了一份没有任何数字的 .pdf 报告。这里我给你看代码:

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}

\title{Anàlisi in situ emplaçament}
\author{Jonel Palou Visa}

\begin{document}
\maketitle
\begin{center}
<<fig=TRUE,echo=TRUE>>=
 site_ref <- site_time_series(site_ref,peaks=T,stationary=T)
@
\end{center}

\begin{center}
<<fig=TRUE,echo=TRUE>>=
site_rose(site_ref)
@

\end{center}

\end{document}

我想知道我打电话来绘制数字的新设备是否有问题,或者我真正的问题是什么。这两个函数的代码太大,无法在此处显示,这些函数中没有任何额外内容,因为要获得图形,我只调用 plot(...)

4

2 回答 2

11

如果没有您创建的两个函数的代码,仍然不清楚出了什么问题。但是,如果您使用latticeggplot2不调用print来自ggplot2or的对象lattice。在命令行上,这些类型的绘图工作,因为 print 然后被隐式调用。所以:

print(site_rose(site_ref))

应该产生正确的结果。或者,您可以开始使用knitr而不是Sweave. knitr没有这个问题。一般来说,我建议使用knitr而不是 Sweave。

于 2012-04-18T16:26:38.320 回答
2

那是整个 Sweave 文件吗?创建 Sweave 文档时,您将无法重用当前环境变量中定义的变量。Sweave 的全部意义在于从端到端重现一些分析,因此无论如何这都不是一个好方法。

我建议site_ref在此 Sweave 文档中包括生成变量所需的任何分析。

如果您坚持走捷径,您可以保存当前的 R 环境并将其作为 Sweave 文档中的第一个命令加载,以提供对这些变量的访问。

用于Stangle从 Sweave 文档中提取 R 代码,然后创建一个新的 R 会话并尝试运行该代码。您可能会收到有关未定义变量的错误,或有关未定义函数的消息。您应该能够在空环境中运行 Sweave 文档中包含的 R 代码并使其成功运行。然后您就可以将其呈现为 PDF。

于 2012-04-18T16:27:48.373 回答