首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sweave/R生成的数字以及为什么只有(PDF)LaTeX

Sweave/R生成的数字以及为什么只有(PDF)LaTeX
EN

Stack Overflow用户
提问于 2011-12-01 08:21:24
回答 1查看 825关注 0票数 2

我在此继续我先前的文章:

Beginner's questions (figures, bibliography) with Sweave/R/LaTeX---my first document

工作守则转载如下:

代码语言:javascript
复制
\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文档被产生。

问题:

  1. ,如果我将上面的文件命名为goodex.snw,然后运行Sweave,我就会得到goodex-004.pdf文件,该文件要么是Tinn-R,要么是RStudio作为情节的PDF图像。为什么拖着004?这种情况可以改变吗?
  2. 可以生成EPS文件吗?Sweave编译成PDF的工具是否仅通过( PDF )LaTeX,而不是通过传统的DVI > PS >PDF路由?
  3. 只是在R命令窗口中运行命令with(test.frame,plot(year,value)),在y轴上生成更多的值,即15000、20000、25000和30000。然而,在这篇文章顶部由我的代码生成的PDF文件中,我没有得到y轴上的所有值(只有15000和25000)。如何在代码中直接控制绘图的大小,以便出现所有必需的y值?

更新:文件apples.d包含:

代码语言:javascript
复制
#Number of apples I ate
year value
8   12050  #year 2008  
9   15292  #year 2009 
10  23907  #year 2010 
11  33997  #year 2011
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-01 08:40:51

您的例子是不可复制的,因为我们没有文件apples.d,所以我们只能猜测为什么情节会出错。请参阅:

How to make a great R reproducible example?

关于如何做一个可复制的例子。

请注意,Sweave不是RstudioTinn-R的功能,它是一个R函数(Sweave()),可以从命令行运行,也可以使用R可执行文件的参数运行。这可能有助于了解您是否正在搜索信息。

至于你的问题:

  1. 情节的名称总是以FILENAME-CHUNKLABEL.pdf或eps形式出现,其中块标签可以设置为Sweave块的选项(这是第一个参数)。如果不设置块名,则图将为enumerated.
  2. You,可以在选项eps=true中使用eps。我非常肯定,在默认情况下,eps和pdf都是生成的。至于编译,Sweave本身并不编译,它创建了一个.tex文件,您可以任意使用该文件。在R2.14中,有一个选项可以在生成的pdfLaTeX文件上自动运行.tex。RstudioTinn-R编译的方式可能是在Sweave之后使用pdfLaTeX调用。您可以手动完成它,如果您想要这样做,differently.
  3. Without,一个可重复的例子,我们只能猜测。出什么问题了?您可以使用xlimylim参数设置绘图的限制,但这不应该是问题所在。

编辑:

用数据来回答编辑的问题。先给点小费。这种提供数据的方式并不是最有用的方法。当然,我们可以复制它,但是如果您以一种我们可以立即运行的方式给出数据,则会容易得多。例如:

代码语言:javascript
复制
test.frame<-data.frame(year=8:11, value= c(12050,15292,23907,33991))

至于情节,你是说y轴上的标签吗?这可以通过在绘图调用中省略轴并使用axis()函数手动设置来改变:

代码语言:javascript
复制
with(test.frame,plot(year,value,axes=FALSE))
axis(1)
axis(2,test.frame$value,las=1)

这看起来确实有点奇怪,如果蜱不是不断地分布在轴上的话。最好是:

代码语言:javascript
复制
with(test.frame,plot(year,value,axes=FALSE))
axis(1)
axis(2,seq(10000,35000,by=5000),las=1)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8338320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档