
library(insee) library(tidyverse) library(raster) library(rgdal) library(broom) library(viridis) idbank_list = get_idbank_list() dataset_list = get_dataset_list() list_idbank = idbank_list %>% filter(nomflow == "TCRED-ESTIMATIONS-POPULATION") %>% filter(dim6 == "00-") %>% #all ages filter(dim5 == 0) %>% #men and women filter(str_detect(dim4, "^D")) %>% #select only departements mutate(title = get_insee_title(idbank)) list_idbank_selected = list_idbank %>% pull(idbank) # get population data by departement pop = get_insee_idbank(list_idbank_selected) #get departements' geographical limits FranceMap <- raster::getData(name = "GADM", country = "FRA", level = 2) # extract the population by departement in 2020 pop_plot = pop %>% group_by(TITLE_EN) %>% filter(DATE == "2020-01-01") %>% mutate(dptm = gsub("D", "", REF_AREA)) %>% filter(dptm %in% FranceMap@data$CC_2) %>% mutate(dptm = factor(dptm, levels = FranceMap@data$CC_2)) %>% arrange(dptm) %>% mutate(id = dptm) vec_pop = pop_plot %>% pull(OBS_VALUE) # add population data to the departement object map FranceMap@data$pop = vec_pop # extract the departements' limits from the spatial object FranceMap_tidy <- broom::tidy(FranceMap) # mapping table dptm_df = data.frame(dptm = FranceMap@data$CC_2, dptm_name = FranceMap@data$NAME_2, pop = FranceMap@data$pop, id = rownames(FranceMap@data)) # add population data to departement dataframe FranceMap_tidy_final = FranceMap_tidy %>% left_join(dptm_df, by = "id") %>% dplyr::select(long, lat, pop, group, id) ggplot() + geom_polygon(data = FranceMap_tidy_final, aes(fill = pop, x = long, y = lat, group = group) , size = 0, alpha = 0.9) + coord_map() + theme_void() + scale_fill_viridis() + ggtitle("Distribution of the population within French territory in 2020")