这是我使用地图包制作北大西洋的地图,我正在为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(。