2013-05-20 2 views
3

피규어로 이상한 행동을합니다. 일부 청크에서 knitr은 단일 플롯 기능에서 두 개의 그림을 생성하고 '청크 이름'에서 생성 된 그림은 'chunkname1.pdf'및 'chunkname2.pdf'로 명명됩니다. 때로는 첫 번째 파일은 두 번째 파일과 동일한 크기의 빈 파일로, 때로는 열 수없는 파일입니다. 해결 방법은 fig.keep='last' 옵션을 설정합니다. 하지만 이제는 같은 청크에서 두 개의 그림을 표시하고 fig.keep을 기본값으로 설정하면 knitr은 손상된 파일 (열 수없는 파일)이있는 3 개의 PDF 그림 파일을 생성합니다.knitr 이상한 행동을 피규어와 함께합니다.

knit_hooks$set(par = function(before, options, envir) { 
    if (before) par(mar = c(4, 4, .1, .1)) 
}) 

opts_knit$set(concordance=TRUE, self.contained=TRUE) 

opts_chunk$set(fig.path="figSW/SW-", keep.source=FALSE, 
    verbose=TRUE, message=FALSE) 

I :

여기서 I가 사용하고있는 설정 값 I가 64 Win7에 따라 버전 1.2 (2013년 4월 10일) R 3.0.0 64 비트 (r62697 2013년 4월 30일)를 knitr있다이다 간단한 예제로 그것을 재현 할 수 없었습니다. 그러나 그러한 예를 만들려고 다른 이상한 결과를 발견했습니다. 다른 모든이 표시되지 않습니다 동안 아래의 예에서, 단지 2, 1 플롯과 (10)는 제대로 표시됩니다 (PDF 파일이 생성되지 않고 지속적으로 \includegraphics는 .tex 파일에 생성되지 않습니다.)

\documentclass[12pt,a4paper]{article} 
\begin{document} 
Plot 1 
<<test-t, echo=TRUE, results="asis", fig.width=10, fig.height=5>>= 
x = c(1,2,3) 
y = c(1,3,2) 
plot(x,y) 
@ 
Plot 2\\ 
<<test-tt, echo=FALSE, results="hide", fig.width=10, fig.height=5>>= 
plot(x,y) 
@ 
\newpage 
Plot 3 
<<test-s, echo=TRUE, results="asis", fig.width=10, fig.height=5>>= 
x = c(1,2,3) 
y = c(1,3,2) 
plot(x,y) 
@ 
Plot 4\\ 
<<test-ss, echo=FALSE, results="hide", fig.width=10, fig.height=5>>= 
plot(x,y) 
@ 
\newpage 
Plot 5 
<<test-r, echo=TRUE, results="asis", fig.width=10, fig.height=5>>= 
x = c(1,2,3) 
y = c(1,3,2) 
plot(x,y) 
@ 
Plot 6\\ 
<<test-rr, echo=FALSE, results="hide", fig.width=10, fig.height=5>>= 
plot(x,y) 
@ 
\newpage 
Plot 7 
<<test-v, echo=TRUE, results="asis", fig.width=10, fig.height=5>>= 
x = c(1,2,3) 
y = c(1,3,2) 
plot(x,y) 
@ 
Plot 8\\ 
<<test-vv, echo=FALSE, results="hide", fig.width=10, fig.height=5>>= 
plot(x,y) 
@ 
\newpage 
Plot 9 
<<test-u, echo=TRUE, results="asis", fig.width=10, fig.height=5>>= 
x = c(1,2,3) 
y = c(1,3,2) 
plot(x,y) 
@ 
Plot 10\\ 
<<test-uu, echo=FALSE, results="hide", fig.width=10, fig.height=5>>= 
plot(x,y) 
@ 
\end{document} 
R-Studio에서 같은 파일을 컴파일

심지어 낯선 사람, 나는 1.2/R 3.0 귀하의 예제와 knitr을 사용하여 문제를 재현 할 수없는 1, 2, 10

답변

4

뿐만 아니라 플롯 6에 대한 예상 결과를 얻을 수 . 나는 예상대로 10 개의 플롯 모두를 본다.

손상된 PDF 수치는 개발 버전 knitr에서 수정 된 버그 인 것 같습니다. 당신은 developement에 버전이 빈 및 손상된 그래픽 파일 내 문제를 해결 설치,

install.packages('knitr', repos = 'http://www.rforge.net/', type = 'source') 
+0

감사를 시도 할 수 있습니다. 또한 반복 된 청크를 사용하여 예제의 결과를 향상 시켰습니다. 이제는 3과 4를 제외하고 모든 플롯을 볼 수 있습니다. – Gilbert

+0

개발 버전의 knitr로 R-Studio에서 컴파일 모든 플롯을 볼 수 있지만 플롯 10입니다. R-Studio는 'Issues : 1 badbox'라고 말하지만, 그 의미는. – Gilbert

+0

그 문제는 중요하지 않습니다. –

관련 문제