gpt4 book ai didi

r - 防止海岸线局部绘制

转载 作者:行者123 更新时间:2023-12-04 10:12:49 25 4
gpt4 key购买 nike

如何防止国家多边形在不同的投影下被切除?

在以下示例中,我想制作一个南极洲的立体投影图,其中包括纬度<-45°S。通过将我的y限制设置为该范围,绘图区域是正确的,但随后也会在这些限制下裁剪国家/地区多边形。有什么方法可以将海岸线绘制到绘图区域的边缘吗?

感谢您的任何建议。

library(maps)
library(mapproj)

ylim=c(-90,-45)
orientation=c(-90, 0, 0)

x11()
par(mar=c(1,1,1,1))
m <- map("world", plot=FALSE)
map("world",project="stereographic", orientation=orientation, ylim=ylim)
map.grid(m, nx=18,ny=18, col=8)
box()

最佳答案

问题是因为您指定的最大ylim为-45,并且在该纬度上准确地剪切了数据。显然,图的实际边界是以单独的方式计算的,这可能与基于得出的预计极限的某种保守假设有关(但如果不探索源代码,我一无所知)。

您可以通过设置一个不绘制海岸线的虚拟图来避免该问题,然后使用增加的ylim将数据添加到顶部:

library(maps)
library(mapproj)

ylim = c(-90,-45)
orientation=c(-90, 0, 0)

x11()
par(mar=c(1,1,1,1))
m <- map("world", plot=FALSE)
map("world",project="stereographic", orientation=orientation, ylim=ylim, col = "transparent")
map("world",project="stereographic", orientation=orientation, ylim=ylim + c(-5, 5), add = TRUE)
map.grid(m, nx=18,ny=18, col=8)
box()

顺便说一句,此策略不适用于所有投影,因为某些投影可能暗示某些数据限制会重叠,但是Polar Stereographic只是从中心向外延伸,因此这里没有此类问题。

而且,将有一种使用maptools,rgdal和rgeos进行更新的更新方法,使您可以使用共享正确PROJ.4立体投影的数据(但我还没有弄清楚剪切步骤)。 mapproj中的投影是“仅形状的”,将其他数据放入其中将需要一些工作。

关于r - 防止海岸线局部绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11490493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com