Learn R Programming

cartography (version 2.1.0)

propSymbolsTypoLayer: Proportional Symbols Typo Layer

Description

Plot a proportional symbols layer with colors based on qualitative data.

Usage

propSymbolsTypoLayer(x, spdf, df, spdfid = NULL, dfid = NULL, var,
  inches = 0.3, fixmax = NULL, symbols = "circle", border = "grey20",
  lwd = 1, var2, col = NULL, colNA = "white", legend.title.cex = 0.8,
  legend.values.cex = 0.6, legend.var.pos = "bottomleft",
  legend.var.title.txt = var, legend.values.rnd = 0,
  legend.var.style = "c", legend.var.frame = FALSE,
  legend.var2.pos = "topright", legend.var2.title.txt = var2,
  legend.var2.values.order = NULL, legend.var2.nodata = "no data",
  legend.var2.frame = FALSE, add = TRUE)

Arguments

x

an sf object, a simple feature collection. If x is used then spdf, df, spdfid and dfid are not.

spdf

SpatialPointsDataFrame or SpatialPolygonsDataFrame; if spdf is a SpatialPolygonsDataFrame symbols are plotted on centroids.

df

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

spdfid

identifier field in spdf, default to the first column of the spdf data frame. (optional)

dfid

identifier field in df, default to the first column of df. (optional)

var

name of the numeric field in df to plot the symbols sizes.

inches

size of the biggest symbol (radius for circles, width for squares, height for bars) in inches.

fixmax

value of the biggest symbol. (optional)

symbols

type of symbols, one of "circle", "square" or "bar".

border

color of symbols borders.

lwd

width of symbols borders.

var2

name of the factor (or character) field in df to plot.

col

a vector of colors.

colNA

no data color.

legend.title.cex

size of the legend title.

legend.values.cex

size of the values in the legend.

legend.var.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)).

legend.var.title.txt

title of the legend (numeric data).

legend.values.rnd

number of decimal places of the values in the legend.

legend.var.style

either "c" or "e". The legend has two display styles, "c" stands for compact and "e" for extended.

legend.var.frame

whether to add a frame to the legend (TRUE) or not (FALSE).

legend.var2.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)).

legend.var2.title.txt

title of the legend (factor data).

legend.var2.values.order

values order in the legend, a character vector that matches var modalities. Colors will be affected following this order.

legend.var2.nodata

text for "no data" values

legend.var2.frame

whether to add a frame to the legend (TRUE) or not (FALSE).

add

whether to add the layer to an existing plot (TRUE) or not (FALSE).

See Also

legendBarsSymbols, legendTypo, legendCirclesSymbols, legendSquaresSymbols, typoLayer, propSymbolsLayer

Examples

Run this code
# NOT RUN {
## Example 1
library(sp)
data("nuts2006")
plot(nuts0.spdf, col = "grey60",border = "grey20")
nuts0.df$typo <- c(rep("A",10),rep("B",10),rep("C",10),rep("D",4))
propSymbolsTypoLayer(spdf = nuts0.spdf, df = nuts0.df,
                     var = "pop2008", var2="typo")


## Example 2
library(sf)
mtq <- st_read(system.file("shape/martinique.shp", package="cartography"))
# Countries plot
plot(st_geometry(mtq), col = "lightblue4",border = "lightblue3", bg = "lightblue1")
# Population plot on proportional symbols
propSymbolsTypoLayer(x = mtq, var = "P13_POP", var2 = "STATUT",
                     symbols = "circle",          
                     col = c("aquamarine4", "yellow3","wheat"),
                     legend.var2.values.order = c("Pr<U+00E9>fecture de r<U+00E9>gion",
                                                  "Sous-pr<U+00E9>fecture", 
                                                  "Commune simple"),
                     legend.var.pos = "right", border = "grey",
                     legend.var.title.txt = "Total\npopulation (2013)")
# Layout plot
layoutLayer(title = "Population in Martinique",
            sources = "INSEE, 2016", theme = "blue.pal",
            scale = NULL, frame = FALSE)
# }

Run the code above in your browser using DataLab