У меня есть график, который я генерирую в 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 МБ, что очень много для меня, чтобы поместить в документ (не говоря уже о том, что его открытие может занять довольно много времени).Есть ли способ изменить мой код так, чтобы график выглядел одинаково, но размер файла был намного меньше?
Я понимаю, что проблема в том, что я рисую очень много точек, однако я не уверенкак создать красивую «гладкую» серую область без этого.Возможно, есть простая команда, о которой я не знаю.