Colorear los NA´s de blanco en vez de negro

43 views
Skip to first unread message

Claudia Quiroz

unread,
Jul 1, 2024, 1:23:51 PM7/1/24
to mxmaps
Hola Diego, gracias por esta valiosa herramienta. 

Hago un trabajo enfocado en estados fronterizos del Norte de México, la variable que utilizo tiene NA´s para el resto de los estados por lo que son coloreados de negro, como hacer para que en vez de negro sean coloreados de blanco? 

Gracias por tu tiempo 
Captura de pantalla 2024-07-01 a la(s) 11.22.56 a.m..png

Diego Valle-Jones

unread,
Jul 1, 2024, 3:12:52 PM7/1/24
to mxmaps
Hola, lo puedes hacer con el siguiente código (añadiendo un borde a la leyenda para que se pueda distinguir):


library("ggplot2")
library("mxmaps")
df_mxstate_2020$value <-  df_mxstate_2020$indigenous_language /
  df_mxstate_2020$pop * 100
df_mxstate_2020$value[1:15] <- NA

mxstate_choropleth(df_mxstate_2020,
                   num_colors = 1,
                   title = "Percentage of the population that speaks\nan indigenous language",
                   legend = "%") +
  # Add a fake color scale which we'll change to 'no data'
  geom_point(data = df_mxmunicipio_2020[1,],
             size = -1,
             aes(color = "",
                 group = NA)) +
  scale_color_manual(values = NA) +
  scale_fill_continuous(low="orange", high="darkred",
                        na.value = "white") +
  theme(legend.key = element_rect(color="black")) +
  guides(color=guide_legend("no data",
                            override.aes=list(color = "white")))


Claudia Quiroz

unread,
Jul 2, 2024, 7:42:32 PM7/2/24
to mxmaps
Muchas gracias, problema resuelto. Por otro lado me gustaría saber si es posible que en el mapa se logren observar los estados fronterizos de EUA? 

Diego Valle-Jones

unread,
Jul 2, 2024, 9:49:39 PM7/2/24
to mxmaps
Hola, eso lo puedes hacer con sf:

library("ggplot2")
library("mxmaps")
library("sf")
library("maps")


df_mxstate_2020$value <-  df_mxstate_2020$indigenous_language /
  df_mxstate_2020$pop * 100
df_mxstate_2020$value[1:15] <- NA

usa <- st_as_sf(maps::map("state", fill=TRUE, plot =FALSE))
usa <- subset(usa, ID %in% c("arizona", "new mexico", "california", "texas"))
usa$group <- 1
usa$long <- 1
usa$lat <- 1


mxstate_choropleth(df_mxstate_2020,
                   num_colors = 1,
                   title = "Percentage of the population that speaks\nan indigenous language",
                   legend = "%") +
  # Add a fake color scale which we'll change to 'no data'
   geom_point(data = df_mxmunicipio_2020[1,],
              size = -1,
              aes(color = "",
                  group = NA)) +
  scale_color_manual(values = NA) +
  scale_fill_continuous(low="orange", high="darkred",
                        na.value = "white") +
  theme(legend.key = element_rect(color="black")) +
  guides(color=guide_legend("no data",
                            override.aes=list(color = "white"))) +
  geom_sf(data = usa, fill = "gray")  +
  # scale_x_continuous(limits =  c( -129, 9)) +
  # scale_y_continuous(limits = c(-76, 40)) +
   coord_sf(default_crs = sf::st_crs(4326),
            xlim = c(-129, -76), ylim = c(10, 44), datum = NA)  


  

Claudia Quiroz

unread,
Jul 3, 2024, 3:04:08 PM7/3/24
to mxmaps
Te agradezco mucho :)

Claudia Quiroz

unread,
Jul 3, 2024, 4:22:27 PM7/3/24
to mxmaps
Disculpa la molestia nuevamente. Quisiera saber si es posible que los estados se coloreen de acuerdo a una variable categórica (2 categorías) y a partir de esto se haga el difuminado de acuerdo al valor de "value" como se ha venido haciendo. 

Diego Valle-Jones

unread,
Jul 3, 2024, 6:37:27 PM7/3/24
to mxmaps
Hola, eso lo puedes hacer con el segundo ejemplo de esta página: https://www.diegovalle.net/mxmaps/articles/municipios.html (adaptándolo a usar MXStateChoropleth obviamente)
Reply all
Reply to author
Forward
0 new messages