我使用R生成具有许多透明层的图形。我希望输出为pdf,但是当有太多透明层时,文件大小会爆炸。我可以手动打开GIMP中的每个并在那里展平它,但我想通过R中的system()
调用来执行此操作,以便可以自动执行该过程。有人知道这样做的方法吗?
这是一个愚蠢的可重复的例子:
set.seed(2)
x = sort(runif(100))*10
y = rgamma(100,shape = x*rexp(100),scale=1/exp(rnorm(100)))
plot(x,y)
for (i in 1:200){
y = rgamma(100,shape = x*rexp(100),scale=1/exp(rnorm(100)))
fit = loess(y~x)
points(x,y,col=rgb(0,1,0,.3))
lines(x,predict(fit),col=rgb(1,0,0,.3))
}
现在,我希望能够执行dev.copy2pdf(file="dumb_graph.pdf")
,然后执行system(something)
以展平图像。或者很可能是许多不同的系统调用。有没有人知道会这样做的任何实用程序?
编辑:我正在寻找特定于Linux的解决方案,但我想其他平台上的解决方案对于那些可能会搜索这一天的人来说是有用的帖子。
Edit2:输出应为矢量。