减少EPS格式的图块大小

时间:2009-07-22 07:34:10

标签: r postscript eps

我有一个包含数百个项目的直方图,我为此制作了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。

6 个答案:

答案 0 :(得分:3)

您有三种选择。

  1. 接受较大的文件大小
  2. 以非矢量格式保存文件,例如png
  3. 在随机的数据样本上创建QQplot。几百个点的随机样本应该给出类似的QQ图。

    后记(文件名) Samp< - 样本(n,大小= 200) qqnorm(Samp,main = title)) qqline(桑普) dev.off()

答案 1 :(得分:3)

我刚尝试了几件不起作用的东西 - 我把它们包括在这里是为了让别人浪费时间。作为参考,我在上面的代码中设置了n <- rnorm(1e5)

不起作用的事情:

  1. 设置colormodel <- "gray"

  2. 使用不同的pch值。 (其他一些值增加文件大小,但我发现没有减少它。)

  3. 设置useKerning = FALSE

  4. 更改宽度和高度设置。

  5. 使用pdf代替postscript。

  6. 使用Cairo包中的CarioPS。

  7. 鉴于此,我认为您不太可能使用矢量格式减小文件大小。这意味着您必须使用栅格格式(很可能是PNG)。

答案 2 :(得分:2)

在R-list link text的讨论中,我了解了pdftkn= 1e5将pdf大小从6mb减少到600k。非常整洁!

答案 3 :(得分:2)

在GS视图中,将我们的文件转换为pdf,然后再转换为PS或EPS,最终文件的大小减少5-7倍。

答案 4 :(得分:1)

好吧,EPS只包含绘制绘图的说明,因此其大小在很大程度上取决于您拥有的数据点数。在使用压缩的PDF中,它可能更小,但最好的选择可能是使用光栅格式,这种格式可能会小于此。

我怀疑EPS R生成的内容已经尽可能小(我确信它们在Postscript中有自己的功能来处理用一个char名称绘制数据等等,因为这是相当常见的做法)。我怀疑有很多方法可以优化它。不过我可能会弄错,但R很可能是唯一一个有足够高级信息来合理压缩输出的程序。

答案 5 :(得分:1)

OP通过直接生成PNG文件解决了这个问题。我不得不使用EPS,因为PNG和其他格式使图像混淆。我无论如何都要转换为EPS以包含在LaTeX文件中。

我使用GIMP导入从R图像功能生成的10 MB eps文件。然后旋转,展平,并保存为300KB eps文件。展平将所有图层合并为一个图层,并删除Alpha通道以获得透明度。这次转型后,LaTeX可以轻松处理。

在转换之前,图像在Ghost脚本中渲染得非常慢,并且在epsviewer中根本无法渲染。 GIMP使用Ghost Script作为前端,因此导入速度很慢,但是一旦导入,所有处理和渲染都非常快。