knitr::opts_chunk$set(echo = TRUE, fig.dim = c(6, 4.6), dpi = 200, out.width = '100%')
library(mxmaps) library(viridis) library(scales) df_mxmunicipio_2020$value <- df_mxmunicipio_2020$indigenous_language / df_mxmunicipio_2020$pop gg = MXMunicipioChoropleth$new(df_mxmunicipio_2020) gg$title <- "Percentage of the population that speaks\nan indigenous language" gg$set_num_colors(1) gg$ggplot_scale <- scale_fill_viridis("percent", labels = percent) gg$render()
Another example with categorical data
library("ggplot2") df_mxmunicipio_2020$value <- as.factor(sample(c(NA, letters[1:6]), nrow(df_mxmunicipio_2020), replace = TRUE) ) gg = MXMunicipioChoropleth$new(df_mxmunicipio_2020) gg$title <- "Municipios a-f" gg$set_num_colors(6) gg$set_zoom(subset(df_mxmunicipio_2020, state_name %in% c("Ciudad de México", "México"))$region) gg$ggplot_scale <- scale_fill_brewer("type", type = "qual", palette = 2, na.value = "gray") p <- gg$render() p + theme_void()
You can also edit the ggplot object directly, for example, if you wanted to remove the municipio borders.
library("scales") df_mxmunicipio_2020$value <- df_mxmunicipio_2020$afromexican / df_mxmunicipio_2020$pop p <- mxmunicipio_choropleth(df_mxmunicipio_2020, title = "Percentage of population that identifies as Afromexican", legend = "percent\nAfromexican", num_colors = 1) p[["layers"]][[1]][["aes_params"]][["colour"]] <- "transparent" p
We can also label the map with the names of important municipios (in this case those municipios in Chihuahua with more than 100,000 persons)
library("ggrepel") df_mxmunicipio_2020$value <- df_mxmunicipio_2020$indigenous_language / df_mxmunicipio_2020$pop * 100 chih <- subset(df_mxmunicipio_2020, state_name %in% c("Chihuahua")) p <- mxmunicipio_choropleth(df_mxmunicipio_2020, num_colors = 1, zoom = chih$region, title = "Percentage of the population that self-identifies\nas indigenous in Chihuahua", show_states = FALSE, legend = "%") labels <- chih labels$group <- NA labels <- subset(labels, pop > 1e05) p + geom_text_repel(data = labels, aes(long, lat, label = municipio_name), nudge_x = .1, nudge_y = .7) + geom_point(data = labels, aes(long, lat), color = "#d6604d", size = 1)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.