因此,我正在使用Sweave創建pdf,其中包含一些關於它們的點數的圖表。我可以很好地獲得PDF,但它似乎已經創建了很多層,所以很難在Acrobat或Reader中打開該文件。當我這樣做時,我幾乎可以看到文檔上的點加載。在Sweave中製作拼合的pdfs
有沒有辦法在Sweave中使pdf變平,這樣它就不那麼龐大了?
(請注意,我用的RStudio我知道,我也許應該用其他的東西,但我還沒有發現任何已經工作這麼順利呢。)
因此,我正在使用Sweave創建pdf,其中包含一些關於它們的點數的圖表。我可以很好地獲得PDF,但它似乎已經創建了很多層,所以很難在Acrobat或Reader中打開該文件。當我這樣做時,我幾乎可以看到文檔上的點加載。在Sweave中製作拼合的pdfs
有沒有辦法在Sweave中使pdf變平,這樣它就不那麼龐大了?
(請注意,我用的RStudio我知道,我也許應該用其他的東西,但我還沒有發現任何已經工作這麼順利呢。)
正如Gavin所說,沒有必要爲此切換到knitr
,雖然這樣做還有其他優點。但是,您甚至不需要編寫自己的保存和包含代碼; Sweave可以爲你做到這一點。如果最初的文檔是:
\documentclass{article}
\usepackage[american]{babel}
\begin{document}
<<>>=
n <- 100000
DF <- data.frame(x=rnorm(n), y=rnorm(n))
@
<<gen_fig, fig=TRUE>>=
plot(DF)
@
\end{document}
然後,只需通過改變參數的數字塊,你可以得到一個PNG,而不是一個PDF:
<<gen_fig, fig=TRUE, png=TRUE, pdf=FALSE>>=
plot(DF)
@
在這個簡單的例子,它縮小我的最後PDF從685K到70K。
正如已經提到你可能應該進行切換到knitr,這使得在pdf和其他格式之間交換更好。特別是,你應該看看:
下面是使用PNG裝置的一個例子:
\documentclass{article}
\begin{document}
<<gen_fig, dev='png'>>=
n <- 100000
DF <- data.frame(x=rnorm(n), y=rnorm(n))
plot(DF)
@
\end{document}
沒有必要爲knitr
指定fig=TRUE
。如果graphics
包裝中的PNG設備的圖像質量不足,則可以輕鬆切換到其他PNG設備,例如, dev='CairoPNG'
或'Cairo_png'
。在Sweave中,你只需編寫更多的代碼來完成同樣的事情。
爲此,沒有必要切換到Knitr,雖然這樣做有很多好處。
一種解決方案是隻爲繪圖文件安排生產,然後自己包括它,而不是依靠Sweave這樣做對你
<<gen_fig, echo=true, eval=true>>=
png("path/to/fig/location/my_fig.png")
plot(1:10)
dev.off()
@
\includegraphics[options_here]{path/to/fig/location/my_fig}
另一種選擇是要考慮是否有情節「噸點「是一個有用的數字 - 你能看到所有的點嗎?興趣點的密度是多少?替代方案包括通過hexbin程序包繪圖或生成點的2-d密度並將其繪製爲密度較低的一組點。 ggplot2包內置了很多此功能,請參閱例如stat__bin2d()
或stat_binhex()
。
您的圖形目前在使用什麼格式? – mnel
...好問題?它們直接從R代碼生成。 – RickyB
如果您使用的是默認設置,那麼它們是eps和pdf,請參閱http://www.statistik.lmu.de/~leisch/Sweave/FAQ.html我建議轉換爲'knitr',您可以在其中輕鬆指定設備並使用更小的'png'或'jpeg'。 – mnel