Mapas

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 ggplot. 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 será la que nos permita 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:

Rstats + Shiny + Leaftlet -> Mapas interactivos muy sencillos

Entrada en la que os mostraré como 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 como 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

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 en realizar la petición a la API y obtener un json pero tenemos la suerte de contar con R y ese proceso le podemos hacer de forma más sencilla e incluso le podemos tabular. En realidad son 4 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 Plattform 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.

Leaflet con R. Apuntes de mapas de coordenadas

Estoy desarrollando cosas muy interesantes con leaftlet en R y quería poner unos breves apuntes por si a alguien le sirvieran. En Stackoverflow 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 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:

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

Las animaciones con Python que mostramos hoy, al final, son animaciones con Image Magick pero esta entrada es un ejemplo de como 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.

Incluir subplot en mapa con ggplot

Se ha trabajado un mapa de España con ggplot al que podemos añadir subplot 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 seguidores el blog ya conocen una entrada en la que se escribió sobre la inclusión de pie chart en mapas con R esta entrada supone ir un paso más allá.

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 ggplot 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 dos 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.

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

Petición de un lector de un código de ejemplo para hacer mapas de Perú con R y con Python, perfectamente reproducible si seguimos algunas entradas del blog pero que, de este modo, quedan resumidos en un solo sitio. En este caso se va a emplear un notebook desde RStudio donde tendremos chunks de R y Python en función de lo que necesitemos. Podéis copiar y pegar directamente, debe salir lo mismo.

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 Hernangomez](http://CCAA.sf <- esp_get_ccaa() table(CCAA.sf$iso2.ccaa.code)) 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)
library(stringr)

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,sep=""))

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 para realizar el mapa con el que empezamos la entrada:

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 como hacer el gráfico y como disponer los datos.

Obtención del shp con el mapa

Se comienza por realizar un mapa sin nada con ggplot y raster que a los seguidores de los artículos de R del blog les será familiar:

Mapa España por Comunidades Autónomas con Google Studio

Continúo evaluando métodos para crear mapas con software que no sea de pago e intentando que la dificultad sea mínima. En este caso quería mostraros y poner a vuestra disposición un mapa de España por Comunidades Autónomas, además os dejo acceso libre a los datos que usa el mapa para que vosotros mismos podáis realizar el trabajo. Voy a pasaros 2 enlaces uno con los datos donde tenemos datos de pruebas PCR por 100.000 habitantes a nivel de Comunidad Autónoma (por representar algo) es ahí donde incluís los datos que deseáis representar gráficamente. Y el otro enlace es el dashboard simple hecho con Data Studio que véis al inicio de la entrada que contiene un mapa con el formato que en este momento necesito. Este trabajo es meramente experimental porque pongo a disposición de todos tanto mapa como Hoja de Google, veremos lo que tarda en dejar de funcionar.

Mover parte de un shapefile con R. Mapa con tasa de casos de coronavirus por habitante en España

Si leéis habitualmente el blog ya conocéis la entrada sobre el mapa del COVID por Comunidades Autónomas y estaréis de acuerdo conmigo en que el mapa de España representado con Rstats es feo de solemnidad. Pero el código es «sencillo» por ahí se ve cada representación que requiere ser desarrollador de R cinturón negro. Bueno, los torpes empleamos ggplot con geom_polygon pero podemos empezar a complicar el mapa añadiendo nuevas posibilidades. La que os traigo hoy es muy interesante en el caso de España, se trata de mover las Islas Canarias en el mapa de Comunidades Autónomas pero directamente con R. Ya tenemos hecho un mapa con QGIS en otra entrada, pero ahora vamos a mover esa parte del shapefile directamente con R y la función elide como hemos hecho en otra ocasión. Estaréis pensando «Vaquerizo no tiene imaginación por eso tira de entradas anteriores y las junta», no es el caso.

Mapa de códigos postales con R. Aunque el mapa es lo de menos

Entrada para facilitar la realización de mapas de códigos postales de España con R. Todo parte del trabajo de Íñigo Flores al que ya mencionamos en otra entrada. Íñigo descargó de Cartociudad y recopiló los objetos shape file para realizar estos gráficos y los subió a su repositorio, están desactualizados pero puede ser suficiente para la realización de mapas de códigos postales. Íñigo subió en formato .zip todos los archivos necesarios provincia a provincia como lo tenía Cartociudad. Podemos clonarnos el repositorio o leer directamente de github, en cualquier caso necesitamos una función en R que nos permita leer archivos comprimidos en formato zip y cuando lea el zip seleccionar que expresamente lea el archivo shp que contiene el spatial data.