R: Make an inset map

inset {terra} | R Documentation

## Make an inset map

### Description

Make an inset map or scale the extent of a SpatVector

### Usage

    ## S4 method for signature 'SpatVector'
    inset(x, e, loc="", scale=0.2, background="white", border="black", box=NULL, pbx, ...)

    ## S4 method for signature 'SpatRaster'
    inset(x, e, loc="", scale=0.2, background="white", border="black", box=NULL, pbx, ...)

    ## S4 method for signature 'SpatVector'
    inext(x, e, y=NULL, gap=0)

### Arguments

`x` | SpatVector, SpatRaster
`e` | SpatExtent to set the size and location of the inset. Or missing
`loc` | character. One of "bottomright", "bottom", "bottomleft", "left", "topleft", "top", "topright", "right", "center"
`scale` | numeric. The relative size of the inset, used when x is missing
`background` | color for the background of the inset. Use `NA` for no background color
`border` | color for the border around the inset. Use `NA` for no border
`box` | SpatExtent or missing, to draw a box on the inset
`pbx` | list with graphical arguments for the box
`...` | additional arguments passed to plot for the drawing of `x`
`y` | SpatVector. If not NULL, `y` is scaled based with the parameters for `x`. This is useful, for example, when `x` represent boundaries, and `y` points within these boundaries
`gap` | numeric to add space between the SpatVector and the SpatExtent

### Value

scaled and shifted SpatVector or SpatRaster (invisibly)

### See Also

`sbar`, `rescale`, `shift`

### Examples

    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

[Package terra version 1.3-22 Index]