Anj*_*jaM 12 pdf plot png r graphic
我必须创建一堆包含大量数据点的图表.到目前为止,我一直在通过将所有这些绘制成一个pdf文件来做到这一点:
pdf("testgraph.pdf")
par(mfrow=c(3,3))
for (i in 2:length(names(mtcars))){
plot(mtcars[,1], mtcars[,i])
}
dev.off()
Run Code Online (Sandbox Code Playgroud)
但是,由于数据点很多,pdf文件会变得太大.由于我对优秀品质不感兴趣,我不在乎我的情节是否是矢量图形.所以我想到创建绘图png,然后将它们插入到pdf文件中.有没有办法做到这一点,除了创建的R图表和将它们插入到pdf与knitr(我认为这是太繁琐了这样一个简单的工作)?
Ben*_*nes 17
您可以
png包来读取那些和grid.arrangelibrary(png)
library(grid)
library(gridExtra)
thePlots <- lapply (2:length(names(mtcars)), function(i) {
png("testgraph.png")
plot(mtcars[,1], mtcars[,i])
dev.off()
rasterGrob(readPNG("testgraph.png", native = FALSE),
interpolate = FALSE)
})
pdf("testgraph.pdf")
do.call(grid.arrange, c(thePlots, ncol = 3))
dev.off()
Run Code Online (Sandbox Code Playgroud)
如果问题的根源是图中的点太多,那么您可能需要考虑使用六边形分级而不是常规的散点图.您可以使用bioconductor中的hexbin包,或者ggplot2包也具有六边形装箱功能.无论哪种方式,您可能会在直接创建pdf文件时获得更有意义的绘图以及更小的文件大小.