r - 具有 800K 点的 Base-R 散点图在 PDF 中变得难以处理 - 光栅化选项?
问题描述
对于出版物,我需要提供矢量图形。我想绘制数据并显示某个范围内的近似值。为了完全控制近似范围和计算,我在基础 R 中完成了它。对于导出,我使用 R 的内置pdf
设备。简而言之,代码是
pdf(file = paste0(pdf_outFile, ".pdf"), onefile = TRUE, paper="a4r")
plot(...) # light blue
points(...) # grey
points(...) # dark blue
# mark smoothed opt (combined of two fitted curves)
points() # light blue
points() # grey
points() # dark blue
# highlight optimum
abline(v=optX, ...)
abline(h=optY, ...)
points(optX, optY, ...),
dev.off()
我在这个数据中有大约 800K 的单点,这会使 Adobe PDF 崩溃,即使 PDF 本身只有 13 MB 的大小。打开的时候,所有的点都是一个接一个的写,看起来就像一个动画。出版商不接受此 pdf。我还尝试将图层一个接一个地导出到不同的 pdf ,但即便如此它还是使 Adobe PDF 崩溃。
有没有办法对图像进行部分光栅化,以减少点数并提高 PDF 阅读器的用户体验?对于 ggplot2 似乎有一个名为ggrastr的新包来处理这个问题,但我想将我的解决方案与 base R 一起使用。是否有其他设备提供矢量图形,您可以在其中栅格化图层?
解决方案
我终于放弃了,决定以一种我可以用ggplot2
和绘制它们的方式重塑我的数据ggrastr
。这产生了预期的结果。
推荐阅读
- r - 将 if 逻辑与 match 一起使用
- c# - 我正在使用 MigraDoc 和 PdfSharp(.Net 标准),但是当我尝试创建段落时,出现错误:“找不到合适的字体”
- java - 如何绘制通过鼠标单击移动的矩形
- java - 如何防止捕获 API 链接?
- amazon-web-services - 堆栈创建时的 Aws 区块链模板错误
- ionic-framework - Axios + Ionic React + Sails:_csrf token 403 Forbidden
- function - 无法使用 wow.js
- c# - 空变量是否与 C# 中的填充变量具有相同的大小
- android - 使用自动增量主键迁移 Room 数据库
- c# - 在 C# ExcelApp 析构函数中,我收到错误“当前上下文中不存在该应用程序”