terra rast对象在绘图边距之外绘制
在向绘图中添加rast对象时,栅格会超出绘图区的边距。
示例:
library(terra) #terra 1.9.27
r<-rast(system.file("ex/elev.tif", package="terra"))#load a rast
inset<-c(xmin=6,xmax=6.5,ymin=49.5,ymax=50)#specify an area of interest within the rast bounding box
plot(NULL,xlim=inset[1:2],ylim=inset[3:4])#create an empty plot for area of interest
plot(r,add=T,legend=F)#add rast object
效果如下:

虽然我意识到这可以通过image函数来解决,该函数在绘图区边距内绘制,但据我所知,image函数不能用于RGB图像的正确绘制。因此,推荐使用terra:plot函数来解决,而不是terra:image函数。
我尝试将rast对象与参数mar=NA一起添加,但没有效果。
解决方案
给定如下
library(terra)
r <- rast(system.file("ex/elev.tif", package="terra"))
inset <-c(xmin=6,xmax=6.5,ymin=49.5,ymax=50)
最简单的方法是
plot(r, legend=F, ext=inset)
它还有一个额外的优点:生成的地图具有合理的 纵横比,你不会得到基础绘图在先绘制“inset”的坐标时所造成的失真(除非你使用 ext(inset),见下文)。
你也可以这样做
plot(crop(r, inset))
或者
plot(ext(inset), border=NA)
plot(r, legend=F, add=TRUE)
如果你的目标是在另一张地图上制作一个inset,或许可以从 terra::inset 开始。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。
