2011-12-01 35 views
2

我在這裏繼續我先前的職位:圖號碼和爲什麼只有(PDF)膠乳

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文檔。

問題:

  1. 如果我命名上面的文件爲goodex.snw和我運行Sweave,我得到的文件goodex-004.pdf與任何Tinn-RRStudio隨着劇情的PDF圖像。爲什麼尾隨004?這可以改變嗎?

  2. 是否可以生成EPS文件? Sweave編譯爲PDF的工具是否僅通過(PDF)LaTeX,而不是通過傳統的DVI> PS> PDF路徑?

  3. 只是在R命令窗口運行命令with(test.frame,plot(year,value))上生成多個值的y軸即15000,20000,25000和30000。然而,在此柱的頂部通過Sweave產生通過我的代碼PDF文件,我沒有得到y軸上的所有值(只有15000和25000)。如何直接在代碼中控制圖的大小,以便顯示所有必需的y值?


更新:文件apples.d包含:因爲我們沒有文件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 
+1

您的繪圖世代沒有連接到Sweave或LaTeX。你需要在R中進行排序(在另一個問題中做一個小型的,獨立的例子)。關於Sweave,你見過這個嗎? http://stat.epfl.ch/webdav/site/stat/shared/Regression/EPFL-Sweave-powerdot.pdf –

+0

@ Roman感謝您的有用鏈接。 – yCalleecharan

+0

@ Roman在我的理解中,情節世代與Sweave相連。我用R碼(15000,20000,25000 300000)解釋了我在Y軸上得到的結果,而在Sweave中,我只得到了15000和25000.我不明白這裏很難理解什麼。 1投票上來 – yCalleecharan

回答

3

你舉的例子是不可複製的,所以我們只能猜測爲何情節出錯。請參閱:

How to make a great R reproducible example?

如何使一個可重複的例子

請注意,Sweave不是RstudioTinn-R一個功能性,它是R函數(Sweave()),可以從命令行或與從R可執行參數運行。這可能有助於瞭解您是否正在搜索信息。

至於你的問題:

  1. 地塊的名字總是有形式FILENAME-CHUNKLABEL.pdf或EPS,其中塊標籤可以設置爲選擇到Sweave塊(這是第一個參數)。如果你沒有設置塊名稱,圖塊將被枚舉。
  2. 您可以使用epseps=true選項。我非常肯定,默認情況下,eps和pdf都會生成。至於編譯,Sweave不會自行編譯,它會創建一個可以以任何您想要的方式使用的.tex文件。在R 2.14中,可以自動在生成的.tex文件上運行pdfLaTeX。編譯方式RstudioTinn-R可能是在Sweave之後使用pdfLaTeX調用。如果你想以不同的方式做,你可以手動完成。
  3. 沒有一個可重複的例子,我們只能猜測。出了什麼問題?您可以使用xlimylim參數來設置圖的極限,但這不應該是這裏出了什麼問題。

編輯:

在響應於與數據編輯的問題。首先只是一個提示。這種提供數據的方式並不是最有用的方式。我們當然可以重現這一點,但如果您以我們可以立即運行的方式提供數據,則會更容易。例如:

test.frame<-data.frame(year=8:11, value= c(12050,15292,23907,33991)) 

至於情節,你的意思是y軸上的標籤?這可以通過在劇情通話omiting軸,並與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) 
+2

應該注意的是,應該在'\ SweaveOpts {}'中設置'eps = true'。 –

+0

@ Sacha我現在已經把文件「apples.d」的內容。現在你應該能夠運行代碼。 – yCalleecharan

+0

@ Roman \ SweaveOpts {eps = true}正常工作。非常感謝。 – yCalleecharan