plot one or more attributes of an sf object on a map Plot sf object
# S3 method for sf
plot(
x,
y,
...,
main,
pal = NULL,
nbreaks = 10,
breaks = "pretty",
max.plot = if (is.null(n <- getOption("sf_max.plot"))) 9 else n,
key.pos = get_key_pos(x, ...),
key.length = 0.618,
key.width = lcm(1.8),
reset = TRUE,
logz = FALSE,
extent = x,
xlim = st_bbox(extent)[c(1, 3)],
ylim = st_bbox(extent)[c(2, 4)]
)get_key_pos(x, ...)
# S3 method for sfc_POINT
plot(
x,
y,
...,
pch = 1,
cex = 1,
col = 1,
bg = 0,
lwd = 1,
lty = 1,
type = "p",
add = FALSE
)
# S3 method for sfc_MULTIPOINT
plot(
x,
y,
...,
pch = 1,
cex = 1,
col = 1,
bg = 0,
lwd = 1,
lty = 1,
type = "p",
add = FALSE
)
# S3 method for sfc_LINESTRING
plot(x, y, ..., lty = 1, lwd = 1, col = 1, pch = 1, type = "l", add = FALSE)
# S3 method for sfc_CIRCULARSTRING
plot(x, y, ...)
# S3 method for sfc_MULTILINESTRING
plot(x, y, ..., lty = 1, lwd = 1, col = 1, pch = 1, type = "l", add = FALSE)
# S3 method for sfc_POLYGON
plot(
x,
y,
...,
lty = 1,
lwd = 1,
col = NA,
cex = 1,
pch = NA,
border = 1,
add = FALSE,
rule = "evenodd"
)
# S3 method for sfc_MULTIPOLYGON
plot(
x,
y,
...,
lty = 1,
lwd = 1,
col = NA,
border = 1,
add = FALSE,
rule = "evenodd"
)
# S3 method for sfc_GEOMETRYCOLLECTION
plot(
x,
y,
...,
pch = 1,
cex = 1,
bg = 0,
lty = 1,
lwd = 1,
col = 1,
border = 1,
add = FALSE
)
# S3 method for sfc_GEOMETRY
plot(
x,
y,
...,
pch = 1,
cex = 1,
bg = 0,
lty = 1,
lwd = 1,
col = ifelse(st_dimension(x) == 2, NA, 1),
border = 1,
add = FALSE
)
# S3 method for sfg
plot(x, ...)
plot_sf(
x,
xlim = NULL,
ylim = NULL,
asp = NA,
axes = FALSE,
bgc = par("bg"),
...,
xaxs,
yaxs,
lab,
setParUsrBB = FALSE,
bgMap = NULL,
expandBB = c(0, 0, 0, 0),
graticule = NA_crs_,
col_graticule = "grey",
border,
extent = x
)
sf.colors(n = 10, cutoff.tails = c(0.35, 0.2), alpha = 1, categorical = FALSE)
object of class sf
ignored
further specifications, see plot_sf and plot and details.
title for plot (NULL
to remove)
palette function, similar to rainbow, or palette values; if omitted, sf.colors
is used
number of colors breaks (ignored for factor
or character
variables)
either a numeric vector with the actual breaks, or a name of a method accepted by the style
argument of classIntervals
integer; lower boundary to maximum number of attributes to plot; the default value (9) can be overriden by setting the global option sf_max.plot
, e.g. options(sf_max.plot=2)
integer; side to plot a color key: 1 bottom, 2 left, 3 top, 4 right; set to NULL
to omit key completely, 0 to only not plot the key, or -1 to select automatically. If multiple columns are plotted in a single function call by default no key is plotted and every submap is stretched individually; if a key is requested (and col
is missing) all maps are colored according to a single key. Auto select depends on plot size, map aspect, and, if set, parameter asp
.
amount of space reserved for the key along its axis, length of the scale bar
amount of space reserved for the key (incl. labels), thickness/width of the scale bar
logical; if FALSE
, keep the plot in a mode that allows adding further map elements; if TRUE
restore original mode after plotting sf
objects with attributes; see details.
logical; if TRUE
, use log10-scale for the attribute variable. In that case, breaks
and at
need to be given as log10-values; see examples.
object with an st_bbox
method to define plot extent; defaults to x
see plot.window
see plot.window
plotting symbol
symbol size
color for plotting features; if length(col)
does not equal 1 or nrow(x)
, a warning is emitted that colors will be recycled. Specifying col
suppresses plotting the legend key.
symbol background color
line width
line type
plot type: 'p' for points, 'l' for lines, 'b' for both
logical; add to current plot? Note that when using add=TRUE
, you may have to set reset=FALSE
in the first plot command.
color of polygon border(s)
see polypath; for winding
, exterior ring direction should be opposite that of the holes; with evenodd
, plotting is robust against misspecified ring directions
see below, and see par
logical; should axes be plotted? (default FALSE)
background color
see par
see par
see par
default FALSE; set the par
“usr” bounding box; see below
object of class ggmap
, or returned by function RgoogleMaps::GetMap
numeric; fractional values to expand the bounding box with, in each direction (bottom, left, top, right)
logical, or object of class crs
(e.g., st_crs(4326)
for a WGS84 graticule), or object created by st_graticule; TRUE
will give the WGS84 graticule
or object returned by st_graticule
color to used for the graticule (if present)
integer; number of colors
numeric, in [0,0.5] start and end values
numeric, in [0,1], transparency
logical; do we want colors for a categorical variable? (see details)
plot.sf
maximally plots max.plot
maps with colors following from attribute columns,
one map per attribute. It uses sf.colors
for default colors. For more control over placement of individual maps,
set parameter mfrow
with par prior to plotting, and plot single maps one by one; note that this only works
in combination with setting parameters key.pos=NULL
(no legend) and reset=FALSE
.
plot.sfc
plots the geometry, additional parameters can be passed on
to control color, lines or symbols.
When setting reset
to FALSE
, the original device parameters are lost, and the device must be reset using dev.off()
in order to reset it.
parameter at
can be set to specify where labels are placed along the key; see examples.
plot_sf
sets up the plotting area, axes, graticule, or webmap background; it
is called by all plot
methods before anything is drawn.
The argument setParUsrBB
may be used to pass the logical value TRUE
to functions within plot.Spatial
. When set to TRUE
, par(“usr”) will be overwritten with c(xlim, ylim)
, which defaults to the bounding box of the spatial object. This is only needed in the particular context of graphic output to a specified device with given width and height, to be matched to the spatial object, when using par(“xaxs”) and par(“yaxs”) in addition to par(mar=c(0,0,0,0))
.
The default aspect for map plots is 1; if however data are not
projected (coordinates are long/lat), the aspect is by default set to
1/cos(My * pi/180) with My the y coordinate of the middle of the map
(the mean of ylim
, which defaults to the y range of bounding box). This
implies an Equirectangular projection.
non-categorical colors from sf.colors
were taken from bpy.colors, with modified cutoff.tails
defaults
If categorical is TRUE
, default colors are from https://colorbrewer2.org/ (if n < 9, Set2, else Set3).
nc = st_read(system.file("gpkg/nc.gpkg", package="sf"), quiet = TRUE)
# plot single attribute, auto-legend:
plot(nc["SID74"])
# plot multiple:
plot(nc[c("SID74", "SID79")]) # better use ggplot2::geom_sf to facet and get a single legend!
# adding to a plot of an sf object only works when using reset=FALSE in the first plot:
plot(nc["SID74"], reset = FALSE)
plot(st_centroid(st_geometry(nc)), add = TRUE)
# log10 z-scale:
plot(nc["SID74"], logz = TRUE, breaks = c(0,.5,1,1.5,2), at = c(0,.5,1,1.5,2))
# and we need to reset the plotting device after that, e.g. by
layout(1)
# when plotting only geometries, the reset=FALSE is not needed:
plot(st_geometry(nc))
plot(st_geometry(nc)[1], col = 'red', add = TRUE)
# add a custom legend to an arbitray plot:
layout(matrix(1:2, ncol = 2), widths = c(1, lcm(2)))
plot(1)
.image_scale(1:10, col = sf.colors(9), key.length = lcm(8), key.pos = 4, at = 1:10)
sf.colors(10)
Run the code above in your browser using DataLab