我在此继续我先前的文章:
Beginner's questions (figures, bibliography) with Sweave/R/LaTeX---my first document
工作守则转载如下:
\documentclass[a4paper]{article}
\usepackage{Sweave} %%%%%%
\begin{document}
<<echo=TRUE>>=
x <- rnorm(100)
xm <- mean(x)
xm
@
<<echo=FALSE>>=
x <- rnorm(100)
xm <- mean(x)
xm
@
<<echo=TRUE>>=
##### Remove all comments from your data file
test.frame<-read.table(file="apples.d",header=T,sep= "")
names(test.frame)
head(test.frame)
class(test.frame)
@
\begin{figure}[htbp]
\begin{center}
\setkeys{Gin}{width=0.5\textwidth}
<<echo=FALSE,fig=TRUE,width=4,height=4>>=
#### Must tell plot where to get the data from. Could also use test.frame$year
with(test.frame,plot(year,value))
@
\end{center}
\end{figure}
\end{document}上面的运行与RStudio (最新)和Tinn-R (最新)运行良好,所需的pdf文档被产生。
问题:
goodex.snw,然后运行Sweave,我就会得到goodex-004.pdf文件,该文件要么是Tinn-R,要么是RStudio作为情节的PDF图像。为什么拖着004?这种情况可以改变吗?EPS文件吗?Sweave编译成PDF的工具是否仅通过( PDF )LaTeX,而不是通过传统的DVI > PS >PDF路由?R命令窗口中运行命令with(test.frame,plot(year,value)),在y轴上生成更多的值,即15000、20000、25000和30000。然而,在这篇文章顶部由我的代码生成的PDF文件中,我没有得到y轴上的所有值(只有15000和25000)。如何在代码中直接控制绘图的大小,以便出现所有必需的y值?更新:文件apples.d包含:
#Number of apples I ate
year value
8 12050 #year 2008
9 15292 #year 2009
10 23907 #year 2010
11 33997 #year 2011发布于 2011-12-01 08:40:51
您的例子是不可复制的,因为我们没有文件apples.d,所以我们只能猜测为什么情节会出错。请参阅:
How to make a great R reproducible example?
关于如何做一个可复制的例子。
请注意,Sweave不是Rstudio或Tinn-R的功能,它是一个R函数(Sweave()),可以从命令行运行,也可以使用R可执行文件的参数运行。这可能有助于了解您是否正在搜索信息。
至于你的问题:
FILENAME-CHUNKLABEL.pdf或eps形式出现,其中块标签可以设置为Sweave块的选项(这是第一个参数)。如果不设置块名,则图将为enumerated.eps=true中使用eps。我非常肯定,在默认情况下,eps和pdf都是生成的。至于编译,Sweave本身并不编译,它创建了一个.tex文件,您可以任意使用该文件。在R2.14中,有一个选项可以在生成的pdfLaTeX文件上自动运行.tex。Rstudio和Tinn-R编译的方式可能是在Sweave之后使用pdfLaTeX调用。您可以手动完成它,如果您想要这样做,differently.xlim和ylim参数设置绘图的限制,但这不应该是问题所在。编辑:
用数据来回答编辑的问题。先给点小费。这种提供数据的方式并不是最有用的方法。当然,我们可以复制它,但是如果您以一种我们可以立即运行的方式给出数据,则会容易得多。例如:
test.frame<-data.frame(year=8:11, value= c(12050,15292,23907,33991))至于情节,你是说y轴上的标签吗?这可以通过在绘图调用中省略轴并使用axis()函数手动设置来改变:
with(test.frame,plot(year,value,axes=FALSE))
axis(1)
axis(2,test.frame$value,las=1)这看起来确实有点奇怪,如果蜱不是不断地分布在轴上的话。最好是:
with(test.frame,plot(year,value,axes=FALSE))
axis(1)
axis(2,seq(10000,35000,by=5000),las=1)https://stackoverflow.com/questions/8338320
复制相似问题