% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/choroLayer.R
\name{choroLayer}
\alias{choroLayer}
\title{Choropleth Layer}
\usage{
choroLayer(
  x,
  spdf,
  df,
  spdfid = NULL,
  dfid = NULL,
  var,
  breaks = NULL,
  method = "quantile",
  nclass = NULL,
  col = NULL,
  border = "grey20",
  lwd = 1,
  colNA = "white",
  legend.pos = "bottomleft",
  legend.title.txt = var,
  legend.title.cex = 0.8,
  legend.values.cex = 0.6,
  legend.values.rnd = 0,
  legend.nodata = "no data",
  legend.frame = FALSE,
  legend.border = "black",
  legend.horiz = FALSE,
  add = FALSE
)
}
\arguments{
\item{x}{an sf object, a simple feature collection. If x is used then spdf, df, spdfid and dfid are not.}

\item{spdf}{a SpatialPolygonsDataFrame.}

\item{df}{a data frame that contains the values to plot. If df is missing 
spdf@data is used instead.}

\item{spdfid}{name of the identifier variable in spdf, default to the first column 
of the spdf data frame. (optional)}

\item{dfid}{name of the identifier variable in df, default to the first column 
of df. (optional)}

\item{var}{name of the numeric variable to plot.}

\item{breaks}{break values in sorted order to indicate the intervals for assigning the colors. 
Note that if there are nlevel colors (classes) there should be (nlevel+1) break values (see Details).}

\item{method}{a classification method; one of "sd", "equal", "quantile", "fisher-jenks","q6", "geom", "arith", 
"em" or "msd" (see \link{getBreaks}).}

\item{nclass}{a targeted number of classes. If null, the number of class is automatically defined (see Details).}

\item{col}{a vector of colors. Note that if breaks is specified there must be one less 
colors specified than the number of break.}

\item{border}{color of the polygons borders.}

\item{lwd}{borders width.}

\item{colNA}{no data color.}

\item{legend.pos}{position of the legend, one of "topleft", "top", 
"topright", "right", "bottomright", "bottom", "bottomleft", "left" or a 
vector of two coordinates in map units (c(x, y)). If 
legend.pos is "n" then the legend is not plotted.}

\item{legend.title.txt}{title of the legend.}

\item{legend.title.cex}{size of the legend title.}

\item{legend.values.cex}{size of the values in the legend.}

\item{legend.values.rnd}{number of decimal places of the values in 
the legend.}

\item{legend.nodata}{no data label.}

\item{legend.frame}{whether to add a frame to the legend (TRUE) or 
not (FALSE).}

\item{legend.border}{color of boxes borders in the legend.}

\item{legend.horiz}{whether to display the legend horizontally (TRUE) or
not (FALSE).}

\item{add}{whether to add the layer to an existing plot (TRUE) or 
not (FALSE).}
}
\description{
Plot a choropleth layer.
}
\details{
The optimum number of class depends on the number of geographical objects. 
If nclass is not defined, an automatic method inspired by Sturges (1926) 
is used : nclass = 1+3.3*log10(N), where nclass is the number 
of class and N is the variable length.\cr


If breaks is used then nclass and method are not. \cr

If breaks is defined as \code{c(2, 5, 10, 15, 20)} intervals will be: [2 - 5[, [5 - 10[, [10 - 15[, [15 - 20].
}
\examples{
library(sf)
mtq <- st_read(system.file("gpkg/mtq.gpkg", package="cartography"))
# Population density
mtq$POPDENS <- 1e6 * mtq$POP / st_area(x = mtq)

# Default
choroLayer(x = mtq, var = "POPDENS")

# With parameters 
choroLayer(x = mtq, var = "POPDENS",
           method = "quantile", nclass = 5,
           col = carto.pal(pal1 = "sand.pal", n1 = 5),
           border = "grey40",
           legend.pos = "topright", legend.values.rnd = 0,
           legend.title.txt = "Population Density\n(people per km2)")

# Layout
layoutLayer(title = "Population Distribution in Martinique, 2015")
}
\references{
Herbert A. Sturges, «
\emph{The Choice of a Class Interval }», Journal of the American Statistical 
Association, vol. 21, n° 153, mars 1926, p. 65-66.
}
\seealso{
\link{getBreaks}, \link{carto.pal},  \link{legendChoro}, \link{propSymbolsChoroLayer}
}
