通过过滤隐藏的对象来减少绘图的PDF文件大小
发布时间:2020-12-15 00:07:34 所属栏目:Java 来源:网络整理
导读:在生成R中许多点的散点图时(例如使用ggplot()),可能有许多点落后于其他点并且根本不可见.例如,见下图: 这是几十万个点的散点图,但大多数都落后于其他点.问题是当将输出转换为矢量文件(例如PDF文件)时,不可见点会使文件大小变大,并在查看文件时增加内存和CPU
在生成R中许多点的散点图时(例如使用ggplot()),可能有许多点落后于其他点并且根本不可见.例如,见下图:
这是几十万个点的散点图,但大多数都落后于其他点.问题是当将输出转换为矢量文件(例如PDF文件)时,不可见点会使文件大小变大,并在查看文件时增加内存和CPU使用率. 一个简单的解决方案是将输出转换为位图图片(例如TIFF或PNG),但它们会失去矢量质量,并且可能会更大.我尝试了一些在线PDF压缩器,但结果与原始文件大小相同. 有什么好的解决方案吗?例如,某些方法来过滤不可见的点,可能是在生成绘图期间或之后通过编辑PDF文件? 解决方法
首先,你可以这样做:
set.seed(42) DF <- data.frame(x=x<-runif(1e6),y=x+rnorm(1e6,sd=0.1)) plot(y~x,data=DF,pch=".",cex=4) PDF大小:6334 KB DF2 <- data.frame(x=round(DF$x,3),y=round(DF$y,3)) DF2 <- DF[!duplicated(DF2),] nrow(DF2) #[1] 373429 plot(y~x,data=DF2,cex=4) PDF大小:2373 KB 通过舍入,您可以控制要删除的值的数量.您只需要修改它来处理不同的颜色. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |