function to produce pie charts on a map

Share:

Description

The function will produce a map with pie charts centred on country centroids (or other chosen points). The size of the circles is determined by the sum of the attribute columns and each section is coloured.

Usage

1
2
3
4
5
mapPies(dF, nameX = "LON", nameY = "LAT", nameZs = c(names(dF)[3],
  names(dF)[4]), zColours = c(1:length(nameZs)), ratio = 1,
  addCatLegend = TRUE, symbolSize = 1, maxZVal = NA, xlim = NA,
  ylim = NA, mapRegion = "world", borderCol = "grey", oceanCol = NA,
  landCol = NA, add = FALSE, main = "", lwd = 0.5, ...)

Arguments

dF

data frame or SpatialPolygonsDataFrame

nameX

name of column containing the X variable (longitude), not needed if dF is a SpatialPolygonsDataFrame

nameY

name of column containing the Y variable (latitude), not needed if dF is a SpatialPolygonsDataFrame

nameZs

name of columns containing numeric variables to determine pie sections

zColours

colours to apply to the pie section for each attribute column

ratio

the ratio of Y to N in the output map, set to 1 as default

addCatLegend

whether to add a legend for categories

symbolSize

multiplier of default symbol size

maxZVal

the attribute value corresponding to the maximum symbol size, this can be used to set the scaling the same between multiple plots

xlim

map extents c(west,east), can be overidden by mapRegion

ylim

map extents c(south,north), can be overidden by mapRegion

mapRegion

a country name from getMap()[['NAME']] or 'world','africa','oceania','eurasia','uk' sets map extents, overrides xlim,ylim

borderCol

the colour for country borders

oceanCol

a colour for the ocean

landCol

a colour to fill countries

add

whether to add the symbols to an existing map, TRUE/FALSE

main

title for the map

lwd

line width for country borders

...

any extra arguments to points()

Details

Beware of creating plots that are difficult for the reader to interpret. More than 3 or 4 categories may be too many.

Value

currently doesn't return anything

Author(s)

andy south

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#getting example data
dF <- getMap()@data  

## these examples repeat the same column in 'nameZs' 
## to show that equal sized pies are created  

#mapPies( dF,nameX="LON", nameY="LAT",nameZs=c('AREA','AREA') )

#mapPies( dF,nameX="LON", nameY="LAT",nameZs=c('AREA','AREA')
#       , mapRegion='africa' )

mapPies( dF,nameX="LON", nameY="LAT"
       , nameZs=c('POP_EST','POP_EST','POP_EST','POP_EST'),mapRegion='africa' )
  

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.