我有一个包含几百个项目的直方图,为此我做了一个Q-Q图。这导致EPS大2.5兆字节。这对于仅包含在出版物中的图形来说太多了,并且不会以100倍放大率观看。
R中有没有选择以某种方式输出更小的EPS?我搜索过的文档无济于事。或者是我最好的选择,比如说,之后以300 dpi光栅化它?如果是这样的话,那么这个工作的工具的任何建议?
情节的R代码没什么特别的:
postscript(filename)
qqnorm(n, main=title))
qqline(n)
dev.off()
编辑:Doh!我的问题提到输出EPS,然后将其转换为某种栅格格式。当然,我当然可以从R开始生成PNG。
我刚刚尝试了几件不起作用的东西 - 我把它们包括在这里是为了挽救别人浪费时间。作为参考,我在上面的代码中设置了n <- rnorm(1e5)
。
不起作用的事情:
colormodel <- "gray"
。useKerning = FALSE
。鉴于此,我认为您不太可能使用矢量格式减小文件大小。这意味着您必须使用栅格格式(很可能是PNG)。
你有三个选择。
在GS视图中,将我们的文件转换为pdf,然后再次转换为PS或EPS,最终文件的大小减少5-7倍。
好吧,EPS只包含绘制绘图的说明,因此它的大小在很大程度上取决于您拥有的数据点数。在使用压缩的PDF中,它可能更小,但最好的选择可能是使用光栅格式,这种格式可能会小于此值。
我怀疑EPS R生成的内容已经尽可能小(我确信它们在Postscript中有自己的函数来处理用一个char名称绘制数据等等,因为这是相当常见的做法)。我怀疑有很多方法可以优化它。不过,我可能会弄错,但R很可能是唯一一个有足够高级信息来合理压缩输出的程序。
OP通过直接生成PNG文件解决了该问题。我不得不使用EPS,因为PNG和其他格式使图像混淆。我无论如何都要转换为EPS以包含在LaTeX文件中。
我使用GIMP导入从R图像函数生成的10 MB eps文件。然后旋转,展平,并保存为300KB eps文件。展平将所有图层合并为一个图层,并删除Alpha通道以获得透明度。这次转型后,LaTeX可以轻松处理。
在转换之前,图像在Ghost脚本中呈现得非常慢,并且在epsviewer中根本无法呈现。 GIMP使用Ghost Script作为前端,因此导入速度很慢,但是一旦导入,所有处理和渲染都非常快。