../docs/vignettes/mapping-local-authorities.Rmd
mapping-local-authorities.RmdYou can use the local_hex_map dataset and the council_seats() function that come with parlitools to map the seat makeup and control of different local authorities.
library(leaflet) library(sf) library(htmlwidgets) library(dplyr) library(parlitools) library(cartogram) local_hex_map <- parlitools::local_hex_map council_data <- parlitools::council_seats() party_colour <- parlitools::party_colour council_data <- left_join(council_data, party_colour, by = c("majority_party"="party_name", "majority_party"="party_name")) #Join to current MP data local_hex_map <- left_join(local_hex_map, council_data, by = "la_code") #Join colours to hexagon map # Creating map labels labels <- paste0( "<strong>", local_hex_map$la_name, "</strong>", "</br>", "Largest Party: ", local_hex_map$majority_party, "</br>", "Governing Coalition: ", local_hex_map$governing_coalition ) %>% lapply(htmltools::HTML) # Creating the map itself leaflet(options=leafletOptions( dragging = FALSE, zoomControl = FALSE, tap = FALSE, minZoom = 6, maxZoom = 6, maxBounds = list(list(2.5,-7.75),list(58.25,50.0)), attributionControl = FALSE), local_hex_map) %>% addPolygons( color = "grey", weight=0.75, opacity = 0.5, fillOpacity = 1, fillColor = ~party_colour, label=labels) %>% htmlwidgets::onRender( "function(x, y) { var myMap = this; myMap._container.style['background'] = '#fff'; }")%>% mapOptions(zoomToLimits = "first")