R 使用Swave和Latex的绘图为空

R 使用Swave和Latex的绘图为空,r,sweave,knitr,R,Sweave,Knitr,我想用我通过R获得的图形制作一份报告。在这里,我向您展示了我设计的site\u rose(site\u ref)和site\u time\u series(site\u ref)。 但是在运行swave('Profile.Rnw')并获得Profile.tex之后,我获得了Profile-002.pdf和Profile-003.pdf,这最后两个文档有0KB。所以我得到了一份没有任何数字的.pdf报告。在这里,我向您展示代码: \documentclass[10pt,a4paper]{art

我想用我通过R获得的图形制作一份报告。在这里,我向您展示了我设计的
site\u rose(site\u ref)
site\u time\u series(site\u ref)

但是在运行swave('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}
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[西班牙语]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\标题{Análisi就地安置}
\作者{Jonel Palou Visa}
\开始{document}
\maketitle
\开始{center}
=

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

print(site_rose(site_ref))

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

这是整个swave文件吗?创建Swave文档时,您将无法重用当前环境变量中定义的变量。Swave的全部目的是从端到端复制一些分析,因此无论如何,这不是一个好的方法

我建议包括生成
site\u ref
变量所需的任何分析,以及本Sweave文档中的其他内容

如果坚持使用快捷方式,则可以保存当前的R环境,并将其作为swave文档中的第一个命令加载,以提供对这些变量的访问


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

挑剔:明智的做法是使用
TRUE
而不是
T
TRUE
是一个R常量,表示目标布尔值
T
可以定义为表示您想要的任何内容。例如,
T对不起,我不太了解你。我的site\u ref变量到底需要做什么?在第一个代码块中,使用变量
site\u ref
。您从未在此脚本中定义过
site\u ref
。因此,可能是您试图绘制一个不存在的变量(这只会给您一个空的绘图或一个错误)。最好在swave文档中包含所有代码,包括创建此类变量(和自定义函数)所需的任何内容。Swave脚本应该是完全自包含的,不需要预定义的变量或预加载的库。在第一行中,我已经提到了delcare site_ref。这不是变量的问题。但是我仍然想知道为什么kintr能起作用而Swave不能起作用。你在你的
site\u-ref
声明中也提到了
site\u-ref
site\u-ref@Paul Hiemstra:非常感谢你的回答。巧合的是,我在RStudio中编译PDF时遇到了问题,而且我没有包括
print(p)
其中
p
是由函数
ggplot
生成的绘图,这是罪魁祸首。@Jonel_R,你在哪里使用ggplot或lattice?打印对象是否解决了问题?@Jubbles,您也可以使用knitr,它在打印时没有这个问题。在许多其他方面,包括语法,都是swave,但更好。我没有使用ggplot或lattice。在site_time_series和site_rose中实现的命令很简单:plot.new()和plot(x…)