Representar polígonos de Voronoi dentro de un polígono

No es la primera vez que traigo al blog la realización de polígonos de Voronoi, pero hoy la entrada está más orientada a la representación gráfica con #rstats y ggplot2. En este caso, deseamos crear polígonos de Voronoi en función del centro geográfico de las provincias españolas. Origen de los datos El pasado 25 de noviembre, el Grupo de Usuarios de R de Madrid trajo la presentación de @dieghernan sobre la creación de mapas con la librería mapSpain, que permite crear mapas de España a distintos niveles, entre ellos mapas a nivel provincial mediante un código en R que no puede ser más sencillo: ...

29 de noviembre de 2021 · rvaquerizo

Rstats + Shiny + Leaflet -> Mapas interactivos muy sencillos

Entrada en la que os mostraré cómo hacer un mapa con Leaflet en R que además añadimos a un Shiny para poder filtrar datos de forma interactiva. Ya mostramos en el blog cómo crear mapas marcando coordenadas con Leaflet y R de forma muy sencilla y hoy damos una vuelta de tuerca a aquella entrada: las coordenadas que deseamos representar tienen, además, algún factor por el que hay especial interés en realizar un filtrado del mapa. Para ilustrar el ejemplo nos vamos a ir al Centro de descargas del Centro Nacional de Información Geográfica y nos bajamos del servidor los datos municipales, en concreto a Nomenclátor Geográfico de Municipios y Entidades de Población; descargamos el archivo y tenemos un ZIP que contiene un CSV llamado MUNICIPIOS.CSV. ...

29 de septiembre de 2021 · rvaquerizo

Obtener las coordenadas de una dirección con R y la API de Google Earth

Obtener coordenadas desde la API de Google Maps a partir de una dirección consiste in realizar la petición a la API y obtener un JSON; pero tenemos la suerte de contar con R y ese proceso lo podemos hacer de forma más sencilla e incluso lo podemos tabular. In realidad son cuatro líneas de código, pero es posible que a alguien le sean de utilidad. Lo primero es disponer de un proyecto en la Google Cloud Platform; si ya lo tenemos, lo que necesitamos es autorizar a este proyecto a acceder a la API de Google Maps. Para ello, yo he usado este enlace y he habilitado la Geocoding API, la que vamos a usar para la consulta de la dirección. ...

6 de septiembre de 2021 · rvaquerizo

Leaflet con R. Apuntes de mapas de coordenadas

Estoy desarrollando cosas muy interesantes con leaflet en R y quería poner unos breves apuntes por si a alguien le sirvieran. En Stack Overflow y otras webs al uso tenéis mucha más ayuda y código de mayor interés, pero en pocas líneas espero sentar las bases de uso de leaflet. Para ilustrar el ejemplo, me he descargado unos datos de datos.gob.es con las coordenadas de los parques de bomberos de Madrid capital; la idea es representar estos puntos en un mapa. Lo primero es descargar los datos y ponerlos en una ubicación de nuestro equipo: ...

10 de junio de 2021 · rvaquerizo

Animación de un mapa con Python. Porcentaje de vacunas administradas

Las animaciones con Python que mostramos hoy, al final, son animaciones con ImageMagick, pero esta entrada es un ejemplo de cómo podemos usar Python para la creación de gráficos que posteriormente generarán esa animación con las instrucciones concretas de ImageMagick (que tiene que estar instalado). La idea es realizar un mapa animado con el porcentaje de vacunas de COVID administradas. Obtención de datos Los datos los descargamos directamente del GitHub de datadista. ...

22 de marzo de 2021 · rvaquerizo

Incluir subplot en mapa con ggplot

Se ha trabajado un mapa de España con ggplot2 al que podemos añadir subplots en función de unas coordenadas; en este caso, es un mapa de España que incluye gráficos de líneas para cada Comunidad Autónoma. Vamos a representar el exceso de mortalidad que está suponiendo la pandemia por COVID, un dato que se puede seguir con MoMo del ISCIII. Los que seguís el blog ya conocéis una entrada en la que se escribió sobre la inclusión de pie charts en mapas con R; esta entrada supone ir un paso más allá. ...

8 de febrero de 2021 · rvaquerizo

Mapa de Rstats animado con el porcentaje de vacunación en España

El dato del porcentaje de vacunados de COVID por Comunidad Autónoma está en prensa diariamente y yo estoy empezando a trabajar animaciones para visualizar los datos de un modo más dinámico, fundamentalmente visualizaciones con R y las librerías ggplot2 y gganimate, así que un mapa animado con ese dato me parecía un ejercicio interesante. No esperaba que estos ejercicios tuvieran mucho interés puesto que hay material en la web más que suficiente, pero algunas personas sí mostraron interés, por lo que crearé dos entradas en el blog con algunas animaciones realizadas. La primera de ellas la traigo hoy y consiste en el porcentaje de personas vacunadas en España en función de las vacunas entregadas por Comunidad Autónoma. No me quiero meter en los datos, directamente vamos a representar; todo lo referente a datos y coronovirus en España no funciona tan correcto como debiera. ...

20 de enero de 2021 · rvaquerizo

Mapas estáticos de Perú con R y Python a nivel de Distrito

Petición de un lector: un código de ejemplo para hacer mapas de Perú con R y con Python. Estos ejemplos quedan resumidos en un solo sitio y se va a emplear un notebook desde RStudio donde tendremos bloques de R y Python en función de lo que necesitemos. Mapa de Perú con R y ggplot2 library(tidyverse) library(reticulate) library(raster) library(maptools) # Obtenemos datos de GADM peru_shp <- getData('GADM', country = 'Peru', level = 2) # Convertimos a data frame para ggplot2 peru_df <- fortify(peru_shp, region = "NAME_2") # Generamos datos aleatorios para ilustrar distritos <- data.frame(id = unique(peru_df$id)) distritos$aleatorio <- runif(nrow(distritos), 10, 30) # Unimos datos con el mapa peru_plot <- left_join(peru_df, distritos, by = "id") # Pintamos el mapa ggplot(data = peru_plot, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = aleatorio)) + scale_fill_continuous(low = "white", high = "red") + theme_minimal() Código conocido: obtenemos el mapa de GADM con nivel 2 (distritos). Mediante fortify (o map_data) creamos el data frame que necesita ggplot2. En este caso genero unos datos aleatorios; en vuestro caso tendríais que cruzar vuestros datos (siempre es mejor emplear una codificación INE o similar en vez del nombre). El resultado: ...

28 de diciembre de 2020 · rvaquerizo

Librería `mapSpain` en `rstats`. Mapas estáticos de España

Más mapas estáticos de España con R, esta vez con la librería mapSpain de Diego Hernangómez, que simplifica mucho la realización de esta tarea. El primer ejemplo es un mapa del exceso de mortalidad por Comunidad Autónoma para el año 2020, reaprovechando un código del blog: library(mapSpain) library(sf) library(tidyverse) library(lubridate) df <- read.csv("https://momo.isciii.es/public/momo/data") df <- df %>% dplyr::filter(ambito == 'ccaa' & nombre_sexo == 'todos' & cod_gedad == 'all') %>% mutate(fecha_defuncion = as.Date(fecha_defuncion, '%Y-%m-%d')) %>% filter(year(fecha_defuncion) >= 2020) df <- df %>% mutate(ola = case_when( fecha_defuncion <= as.Date("2020-03-07") ~ 'Anteriores', fecha_defuncion <= as.Date("2020-05-07") ~ 'Primera ola', fecha_defuncion <= as.Date("2020-08-01") ~ 'Verano', TRUE ~ 'Segunda ola'), exceso = round(defunciones_observadas / defunciones_esperadas - 1, 4) * 100, iso2.ccaa.code = paste0("ES-", cod_ambito)) agr <- df %>% dplyr::filter(ola == 'Primera ola') %>% group_by(iso2.ccaa.code) %>% summarise(exceso = round(sum(defunciones_observadas) / sum(defunciones_esperadas) - 1, 4) * 100) Como vemos en el código, se ha preparado una variable iso2.ccaa.code para el cruce con el objeto espacial que vamos a obtener con mapSpain. Ahora, para realizar el mapa sólo necesitamos unas líneas de código: ...

10 de diciembre de 2020 · rvaquerizo

Añadiendo gráficos de tarta a nuestros mapas de ggplot con scatterpie

Los gráficos de tarta o pie charts tienen algunos peligros y el ahora escribiente no es muy partidario de su uso; sin embargo, la librería scatterpie facilita mucho su realización en R y quería traer al blog un método más o menos sencillo para entender cómo hacer el gráfico y cómo disponer los datos. Obtención del mapa Se comienza por obtener un mapa por comunidades autónomas con raster que a los seguidores de los artículos de R del blog les será familiar: ...

18 de noviembre de 2020 · rvaquerizo