【问题标题】:marmap producing large white margins产生大的白色边距的marmap
【发布时间】:2021-07-05 21:36:54
【问题描述】:

我一直在尝试使用 R 库 marmap 来生成测深图,但无论我做什么,我最终都会在实际地图的两侧获得大的白色区域。即使只是从 marmap 手册中剪切和粘贴代码示例也会产生相同的白色区域,并且不会复制手册本身中的数字。我已经尝试过

中建议的解决方案

How to reduce the space between the plot and the border for geographic maps?

但是 Benoit 的第一个建议会产生高度失真的图像,而第二个解决方案最终仍然会在实际地图的左右两侧产生白色区域。根据 Benoit 的说法,白色区域是由设置地图的纵横比造成的,但如果不设置 asp=NA(他的第一个解决方案),似乎无法设置绘图的经纬度限制,这会产生高度扭曲的地图就我而言。 MWE(没有尝试的解决方案)是

library("marmap")
arabian_sea <- getNOAA.bathy(lon1 = 55, lon2 = 75, lat1 = 0, lat2 = 30, resolution=5, keep=TRUE)
blues <- c("lightsteelblue4", "lightsteelblue3", "lightsteelblue2", "lightsteelblue1")
p_map0 <- plot(arabian_sea, image = TRUE, land = TRUE, lwd = 0.1, 
     bpal = list(c(0, max(arabian_sea), "grey"),
                 c(min(arabian_sea),0,blues)))

生成以下地图

Arabian Sea map produced by marmap

因此,arabian_sea 中的水深从 55 度到 75 度,而图像从 40 度到 90 度,在实际水深图的左侧和右侧留下大的白色条带。我也尝试过使用xlimylim 手动设置窗口属性,但这也没有效果。我显然在这里的某个地方遗漏了一些基本的东西,但我看不到它。

【问题讨论】:

    标签: r


    【解决方案1】:

    您是否尝试过手动减小绘图窗口的大小?

    您还可以在脚本中手动设置绘图设备的大小:

    png(width = 780, height = 1169)
    plot(arabian_sea, image = TRUE, land = TRUE, lwd = 0.3, 
      bpal = list(c(0, max(arabian_sea), "grey"),
                  c(min(arabian_sea),0,blues)))
    dev.off()
    

    在您的工作目录中生成以下文件(默认为 Rplot001.png):

    不过,这是一种猜谜游戏。如果绘图的左侧和右侧仍有白色边距,请减少 png() 调用的 width 值,或增加 height 值。相反,如果图表的顶部和底部有白色边距,则增加width 或减少height。同样,这是由于地图的固定asp。如果您不希望您的地图看起来失真,您必须离开asp = 1。但是,要移除绘图周围不需要的白色区域,您所能做的就是调整绘图区域本身的大小/形状。

    希望这会有所帮助!

    【讨论】:

    • 谢谢,Benoit,成功了。有时,最简单的事情会吸引你。
    猜你喜欢
    • 1970-01-01
    • 2019-09-28
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多