Make an inset map
# S4 method for SpatVector
inset(x, e, loc="", scale=0.2, background="white", border="black", box=NULL, pbx, ...)# S4 method for SpatRaster
inset(x, e, loc="", scale=0.2, background="white", border="black", box=NULL, pbx, ...)
SpatVector, SpatRaster
SpatExtent to set the size and location of the inset. Or missing
character. One of "bottomright", "bottom", "bottomleft", "left", "topleft", "top", "topright", "right", "center"
numeric. The relative size of the inset, used when x is missing
color for the background of the inset. Use NA
for no background color
color for the border around the inset. Use NA
for no border
SpatExtent or missing, to draw a box on the inset
list with graphical arguments for the box
additional arguments passed to plot for the drawing of x
scaled and shifted SpatVector or SpatRaster (invisibly)
# NOT RUN {
f <- system.file("ex/lux.shp", package="terra")
v <- vect(f)
x <- v[v$NAME_2 == "Diekirch", ]
plot(x, density=10, col="blue")
inset(v)
cols <- rep("light grey", 12)
cols[2] <- "red"
e <- ext(c(6.2, 6.3, 49.9, 50))
b <- ext(x)+0.02
inset(v, e=e, col=cols, box=b)
# with a SpatRaster
ff <- system.file("ex/elev.tif", package="terra")
r <- rast(ff)
r <- crop(r, ext(x) + .01)
plot(r, type="int", mar=c(2,2,2,2), plg=list(x="topright"))
lines(v, lwd=1.5)
lines(x, lwd=2.5)
inset(v, col=cols, loc="topleft", scale=0.15)
# a more complex one
plot(r, plg=list(title="meter\n", shrink=.2, cex=.8))
lines(v, lwd=4, col="white")
lines(v, lwd=1.5)
lines(x, lwd=2.5)
text(x, "NAME_2", cex=1.5, halo=TRUE)
sbar(6, c(6.04, 49.785), type="bar", below="km", label=c(0,3,6), cex=.8)
s <- inset(v, col=cols, box=b, scale=.2, loc="topright", background="light yellow",
pbx=list(lwd=2, lty=5, col="blue"))
# note the returned inset SpatVector
s
# }
Run the code above in your browser using DataLab