如何去除边距

4
我指定了图形的宽度、高度和分辨率,然后按照下面的代码去除了边距,并绘制了一个图形。
但是我仍然有边距。使用或不使用par命令得到了相同的图形。上传的图片从7000*5000缩小到了1400*1000以使其小于2MB。 enter image description here
library(scatterplot3d)

parwd = 7000
parht = 5000
parres = 1000

par(oma = c(0,0,0,0), mar = c(0,0,0,0))

jpeg(filename="CC_1_fo.jpg", width = parwd, height = parht, res = parres)
scatterplot3d(1:10, 1:10, 1:10,
              cex.symbol = 0.2,
              xlab = expression(T[1]),
              ylab = expression(T[2]),
              zlab = expression(tau))
dev.off()

如何真正去除边距?

3
你能否添加一个可重现的示例 - Jaap
1
@ProcrastinatusMaximus 我不明白为什么你要求一个可重现的例子,因为数据在这个问题中并不重要。无论如何,我已经编辑了这个问题。 - user67275
7
我要求提供数据,因为这样可以让其他人更容易地重现您的问题,从而更容易地帮助您。 - Jaap
1个回答

6
我猜3D绘图有点奇怪,一些par参数的效果不如预期。具体来说,如果您想使用mar设置边距,则必须在scatterplot3d中使用实际的mar参数。

这在帮助文档的注释中有说明(?scatterplot3d):

某些图形参数只应作为scatterplot3d中的参数设置,而不是在先前的par()调用中设置。其中之一是mar(...)


使用:
scatterplot3d(1:10, 1:10, 1:10,
              cex.symbol = 0.2,
              xlab = expression(T[1]),
              ylab = expression(T[2]),
              zlab = expression(tau),
              mar = c(0,0,0,0))

将导致没有边距的图表:

enter image description here

将边距设置为零会切掉您的刻度标签。

mar = c(2.7, 2.7, 0, 2) 是一个很好的默认设置,可减小边缘大小而不切掉标签(用 c(底部,左侧,顶部,右侧))。 - nevrome

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接