首页 > 解决方案 > 保持绘图的分辨率但在 R 中压缩大小

问题描述

我有一个正在生成的情节,R需要采用 .pdf 格式。我正在使用的当前代码如下:

x1 = seq(0,1,.001)
x2 = seq(0,1,.001)

f = function(x1,x2){
  ans = x1 + x2
  return(ans)
}

h = function(x1,x2){
  ans1 = 1.5-x1-2*x2-.5*sin(2*pi*(x1^2-2*x2))
  ans2 = x1^2+x2^2-1.5
  ans1 = sapply(ans1,function(x){max(x,0)})
  ans2 = sapply(ans2,function(x){max(x,0)})
  ans = ans1 + ans2
  return(ans)
}

z = outer(x1,x2,f)
w = outer(x1,x2,h)

image(x1,x2,z,xlab=expression(x[1]),ylab=expression(x[2]))
contour(x1,x2,z,add=TRUE)

X = cbind(expand.grid(x1,x2),c(w))
points(X[X[,3]!=0,1],X[X[,3]!=0,2],pch=19,col="lightgrey")

现在该图看起来与我希望的完全一样,但是,当我将图另存为 .pdf 时,文件的大小约为 60 MB,这对于我放入文档来说太大了(让仅它需要相当长的时间才能打开)。有没有办法修改我的代码以保持情节看起来相同,但文件大小要小得多?

我知道问题是因为我绘制了很多点,但是,如果不这样做,我不确定如何生成漂亮的“平滑”灰色区域。也许有一个我不知道的简单命令可以使用。

标签: rplot

解决方案


推荐阅读