2016-12-27 1 views
0

R sweave에서 만든 차트를 Pdf로 변환 할 수 없습니다. 그러나 다른 차트를 만들 수 있습니다. 플롯 차트에 다른 코드를 추가해야합니까? 나는 R의 일반 상자 플롯을하려고하면R sweaver에서 pdf로 Plotly 차트를 컴파일 할 수 없습니다

아래는 예를 들어

\documentclass{article} 
\begin{document} 
\SweaveOpts{concordance=TRUE} 



<<echo = FALSE>>= 
C1<-c("A","B","C") 
C2<-c(10,20,30) 
Df<-data.frame(C1,C2) 
@ 

\begin {figure} 

<<echo = FALSE, fig = TRUE>>= 
suppressWarnings (library (plotly)) 
plot_ly(Df, x = ~C1, y = ~C2, type = "bar")%>% layout(title = "ABC") 
@ 

\caption {PlotlyChart} 
\end {figure} 

Normal Chart 

\begin {figure} 

<<echo = FALSE, fig = TRUE>>= 
barplot(Df[ ,2], names.arg = Df[ ,1]) 
@ 

\caption {Normal_Chart} 
\end {figure} 

\end{document} 

, 그것은 작동합니다. 내가 Plotly 차트를 추가 할 때 만, 나는

Running pdflatex on ABC.tex...failed 

Error running /Library/TeX/texbin/pdflatex (exit code 1) 

나는 R의 sweave 및 라텍스에 새로 온 사람과 같은 오류 메시지가, 그래서 어떤 도움에 감사드립니다. 감사!

답변

2

플롯은 플롯을 그리는 자바 스크립트 코드를 생성합니다. 이 코드는 웹 브라우저에서 실행됩니다. Plotly는 HTML 문서 만 생성 할 때 유용합니다. PDF, 라텍스 없음.

그러나 패키지 webshotphantomjs을 사용하여 이미지를 그림으로 저장 한 다음 이미지를 그림으로 포함 할 수 있습니다.

먼저 webshot를 설치

install.packages("webshot") 
webshot::install_phantomjs() 

은 다음과 같이 당신에게 Sweave 파일을 수정 :

\documentclass{article} 
\begin{document} 
\SweaveOpts{concordance=TRUE} 

<<echo = FALSE>>= 
C1<-c("A","B","C") 
C2<-c(10,20,30) 
Df<-data.frame(C1,C2) 
@ 

<<echo = FALSE, fig = FALSE>>= 
suppressWarnings (library (webshot)) 
suppressWarnings (library (plotly)) 
py <- plot_ly(Df, x = ~C1, y = ~C2, type = "bar")%>% layout(title = "ABC") 
export(py, file = "myplot.png") 
@ 
\begin {figure} 
\includegraphics{myplot.png} 
\end {figure} 

\end{document} 
+1

매우 흥미로운 솔루션을. 또한 'phantomjs'는 독립형 터미널 도구로 작동하며 단순히 Plotly HTML 출력의 정적 이미지를 생성하려는 경우 유용 할 수 있습니다. http://phantomjs.org/screen-capture.html – user5359531

+0

@HubertL - 마술처럼 작동합니다. 해결책을 가져 주셔서 감사합니다. – Jessie