Hands-on Exercise 3: Choropleth Mapping with R
1 Getting Started
1.1 Import and Load Packages
1.2 Import Data
2 Basic Choropleth Mapping
2.1 Visualising distribution of functional water points
Areas with more water points (functional or non-functional) will have more functional water points regardless.
3 Choropleth Map for Rates
3.1 Deriving Proportion of Functional Water Points and Non-functional Water Points
3.2 Plotting Map of Rate
4 Extreme Value Maps
4.1 Percentile Map
4.1.1 Data Preparation
percent = c(0, 0.01, 0.1, 0.5, 0.9, 0.99, 1)
var <- NGA_wp["pct_functional"] %>%
st_set_geometry(NULL) # drop geometric field; quantile() doesnt under geometric
quantile(var[,1], percent)
0% 1% 10% 50% 90% 99% 100%
0.0000000 0.0000000 0.2169811 0.4791667 0.8611111 1.0000000 1.0000000
percentmap <- function(vname, df, legtitle=NA, mtitle="Percentile Map"){
percent = c(0, 0.01, 0.1, 0.5, 0.9, 0.99, 1)
var <- get.var(vname, df)
bprec <- quantile(var, percent)
tm_shape(df) +
tm_polygons() +
tm_shape(df) +
tm_fill(vname,
title = legtitle,
breaks = bprec,
palette = "Blues",
labels = c("< 1%", "1% - 10%", "10% - 50%", "50% - 90%", "90% - 99%", "> 99%")) +
tm_borders() +
tm_layout(main.title = mtitle,
title.position = c("right", "bottom"))
}