防止Y轴标签被R Maps()切碎



这是我使用地图包制作北大西洋的地图,我正在为y轴丢失纬度标签。该解决方案似乎是将边缘扩展到左侧,但是调整PAR(MAR(MAR(((参数似乎对输出没有影响:我输入MAR((的任何数字,边距都保持不变。我尝试应用其他帖子中的许多建议,例如在图形设备之后定位PAR((函数,但无济于事,并且以前没有帖子专门在R地图中解决问题。

    library(maps) # tool for maps
    library(mapdata) # all your basemaps are here
    Sample.Lat.lim=c(32,78.5)
    Sample.Long.lim=c(-77,43.5)
    png(filename = "NorthAtlantic.png", 
    width = 2400, height = 2400, res = 300, bg="white")
    par(mar = c(5,8,4,2)+0.1)
    map("worldHires", 
    xlim=Sample.Long.lim, ylim=Sample.Lat.lim, 
    col="grey", bg = "white" , 
    fill=TRUE, resolution=0)
    map.axes()
    map.scale(ratio = FALSE)
    title(main = "Map of the North Atlantic", xlab = "Longitude", ylab = 
    "Latitude")
    dev.off()

虽然我无法重现您的问题(即使使用PNG((我的输出看起来不错(,但Map((在处理图形方面有一些特殊的方法。我注意到差异,例如使用rstudio或从Linux上的命令行运行R时。

map((实际上将" MAR"作为参数并在绘制默认值mar = c(4.1, 4.1, par("mar")[3], 0.1)之前调整边距(和纵横比,...(,因此适应边距的方法是将其作为参数传递在地图((呼叫中:

map("worldHires", mar=c(5,8,4,2)+0.1 , ...)

顺便说一句,我只想警告您" WorldHires"是一个非常过时的世界地图(它有苏联,南斯拉夫...(。如果"世界"确实不够好,那么您想要一张较新的地图,则可能需要安装软件包rnaturarearth。那你可以做

map(ne_countries(10), mar=c(5,8,4,2)+0.1 , ...)

标准"世界"对应于NE_Countries(50(。

最新更新