2013-10-13 24 views
-1

我正在嘗試將單個,小於一頁大小的繪圖包含到一個Sweave/R pdf文檔中。該圖基於大量的數據 - 即在小區域內有數萬個點。每當我通過Sweave正常收錄情節,當我打開pdf時,我會遇到很大的延遲。這與輸出eps數萬個點的情況類​​似 - 即使繪圖區域很小,它也會嚴重滯後。在Sweave中繪製PDF文檔滯後於我的電腦

我該如何對它進行編碼,以便插入一個png或等效的圖形,它不會保留圖中每個點的所有信息,而只是保留與圖大小對應的像素信息?

\begin{figure} 
\begin{center} 
<<fig=TRUE,echo=FALSE,height=4>>= 
plot(rnorm(100000)) 
@ 
\end{center} 
\caption{Visualisation in Sweave which can lag computers} 
\end{figure} 

我正在尋找LaTeX解決方案。這意味着,沒有PNG

回答

1

使用png,如:

\begin{figure} 
\begin{center} 
<<label, fig=FALSE>>= 
png('label.png') 
plot(rnorm(100000)) 
dev.off() 
@ 
\end{center} 
\includegraphics{label} 
\caption{Visualisation in Sweave which can lag computers} 
\end{figure} 

或者從here使用Sweave驅動程序。

+0

'label.png'是否永久保存到本地磁盤上(直到我手動刪除它)? – user2763361

+0

! LaTeX錯誤:未找到文件「標籤」。 – user2763361

+0

@ user2763361:我沒有錯誤,是的,它永久存儲(當然,直到重新編譯)。 – m0nhawk

1

替代方案(不是對問題的直接回答)是用六角形分箱圖代替具有大量點的散點圖。 hexbin軟件包(bioconductor)或ggplot2軟件包都具有創建六邊形分箱圖的功能。這些圖將比包含許多點的散點圖更小/更快,並且對於許多點,hexbin圖甚至可能更有意義。