【问题标题】:Plot in R out of proportion. Why?不成比例地绘制 R。为什么?
【发布时间】:2020-03-22 17:37:06
【问题描述】:

我想在 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

它(应该)应该这样吗?

【问题讨论】:

  • 最好发布完整示例而不是最小版本。
  • @aiatay7n 最小版本已经没有意义了。

标签: r plot margins


【解决方案1】:

实际上,你就快到了。要通过 xlim/ylim 控制绘图窗口的限制而不需要额外的空间 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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-13
    • 2011-01-19
    • 2015-09-20
    • 1970-01-01
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多