::p_load(sf, tmap, tidyverse) pacman
In-class_Ex03
##Importing Data
<- read_rds("data/rds/NGA_wp.rds") NGA_wp
<- tm_shape(NGA_wp) +
p1 tm_fill("wp_functional",
n=10,
style="equal",
palette = "Blues") +
tm_borders(lwd=0.1,
alpha = 1) +
tm_layout(main.title = "Distribution of funtional water points",
legend.outside = FALSE)
p1
#tmap_arrange(p2, p1, nrow=1)
<- NGA_wp %>%
NGA_wp mutate(pct_functional = wp_functional/total_wp) %>%
mutate(pct_nonfunctional = wp_nonfunctional/total_wp)
tm_shape(NGA_wp) +
tm_fill("wp_functional",
n=10,
style="equal",
palette = "Blues",
legend.hist = TRUE) +
tm_borders(lwd=0.1,
alpha = 1) +
tm_layout(main.title = "Rate map of functional water point",
legend.outside = TRUE)
#Percentile Map #step 1; exclude records with NA
<- NGA_wp %>%
NGA_wp drop_na()
#step 2 creating customised classification and extracting values
<- c(0, .01, .1, .5, .9, .99, 1)
percent <- NGA_wp["pct_functional"] %>%
var st_set_geometry(NULL)
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
<- function(vname, df){
get.var <- df[vname] %>%
v st_set_geometry(NULL)
<- unname(v[,1])
v return(v)
}
<- function(vname, df, legtitle=NA, mtitle="Percentile Map"){
percentmap <- c(0, .01, .1, .5, .9, .99, 1)
percent <- get.var(vname, df)
var <- quantile(var, percent)
bperc tm_shape(df) +
tm_polygons() +
tm_shape(df) +
tm_fill(
vname,title = legtitle,
breaks = bperc,
palette = "Blues",
labels = c("< 1%", "1% - 10%", "10% - 50%", "50% - 90%", "90% - 99%", "99% - 100%")
+
) tm_borders()+
tm_layout(main.title = mtitle,
title.position = c("right", "bottom"))
}
percentmap("pct_functional", NGA_wp)