gpt4 book ai didi

r - 在 PDF 中绘制为位图

转载 作者:行者123 更新时间:2023-12-04 11:08:06 25 4
gpt4 key购买 nike

我目前正在处理 CGH 阵列结果,其中涉及数以万计点的多个图,我想从 PDF 设备的多页功能和 PNG 图像格式的亮度中受益。

问题是 PDF 设备将绘图存储为矢量图,因此 PDF 文件很大,需要几分钟才能打开。我想知道 R 是否可以绘制为嵌入在单个 PDF 文件中的多个位图,因为我知道 PDF 格式能够处理它。

这是一个简单的例子,PDF文件大约为2 Mo,而png文件大约为10 Ko,所以我想要一个大约20 Ko的PDF文件。

png("test%i.png")
plot(rnorm(2e4), rnorm(2e4), pch="+", cex=0.6)
plot(rnorm(2e4), rnorm(2e4), pch="+", cex=0.6)
dev.off()

pdf("test.pdf", onefile=TRUE)
plot(rnorm(2e4), rnorm(2e4), pch="+", cex=0.6)
plot(rnorm(2e4), rnorm(2e4), pch="+", cex=0.6)
dev.off()

最佳答案

使用 png 驱动程序创建可接受分辨率的 PNG 文件。使你的情节。关闭 png 设备。

然后使用 package:png 中的 readPNG 读取它。

接下来打开一个 PDF 驱动程序,在 (0,0) (1,1) 处创建一个没有边距和边界的空白图,并使用 rasterImage 将 png 绘制到该图。通过创建新图添加额外的页面。关闭 PDF 驱动程序。

这应该会给你一个带有位图版本的 PDF。正确设置绘图有一些棘手的问题,png 分辨率至关重要,但我认为上述内容包含所有要素。

> png("plot.png")
> makeplot(100000) # simple function that plots 100k points
> dev.off()
X11cairo
2
> plotPNG = readPNG("plot.png")
> pdf("plot.pdf")
> par(mai=c(0,0,0,0))
> plot(c(0,1),c(0,1),type="n")
> rasterImage(plotPNG,0,0,1,1)
> dev.off()

然后检查plot.pdf ...

关于r - 在 PDF 中绘制为位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8048984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com