R 中的绘图不成比例。为什么?

Plot in R out of proportion. Why?

我想在 R 中绘制世界地图,但由于某种原因,图像的顶部和底部有不必要的边距。我将代码减少到最少。

png('mundi.png',1000,500)
par(mar=c(0,0,0,0),bg='green')
plot(NA,xlim=c(-180,180),ylim=c(-90,90),xaxs='i',bty='n',xaxt='n',yaxt='n',asp=1)
par('usr')
rect(-180,-90,180,90,col='white')
dev.off()

生成的图像是

绿色区域是不必要的边距。图像和坐标的尺寸均为 2x1(分别为 1000x500 和 360x180)。 xaxs='i' 应该做出准确的坐标。 asp=1 不需要,也没有任何区别。 par('usr') 回来了

-180.0  180.0  -97.2   97.2

为什么不返回

-180.0  180.0  -90.0   90.0

(应该)应该如此?

实际上,您快到了。要控制绘图的限制 window 到 xlim/ylim 而没有额外的 space R 倾向于添加,您必须指定 x/yaxt = 'i' 选项。您将其设置为 x 轴,而不是 y 轴。

当我为 y 轴设置它时,输出的值符合预期,并且绘图完全是白色的(请原谅我没有贴出它的图像;-))

png('mundi.png', width = 1000, height = 500)
par(mar=c(0,0,0,0), bg='green')
plot(NA, xlim = c(-180,180), ylim = c(-90,90), 
     xaxs='i', yaxs='i', # set both axes to 'i' option
     bty='n',xaxt='n',yaxt='n',asp=1)
par('usr')
# [1] -180  180  -90   90
rect(-180,-90,180,90,col='white')
dev.off()