Paquetes
Cargamos el paquete {echarts4r}
library(echarts4r)
Mapa destacando España
Para realizar un Mapamundi donde destaque, por ejemplo, España, podemos especificar el siguiente código:
mapa_1 <- data.frame(
pais = "Spain",
altura = 10,
color = c("orange")
)
mapa_1 %>%
e_charts(pais) %>%
e_geo_3d(altura, color) %>%
e_title("España", left = "center")
Selección de varios países
De forma similar, para destacar un conjunto de países, que en este caso serán seleccionados al azar, modificamos el código anterior de la siguiente forma:
mapa_2 <- data.frame(
pais = c("Peru", "United States", "Mozambique", "India", "China"),
valores = c(5,5,5,5,5),
color = c("orange","orange","orange","orange","orange")
)
mapa_2 %>%
e_charts(pais) %>%
e_geo_3d(valores, color) %>%
e_title("Perú, Estados Unidos, Mozambique, India, China", "Selección de países", left = "center")
Podemos dar distintos valores a los países seleccionados, que se traducirá en distintos relieves de los mismos sobre el resto de países. En esta ocasión cogemos una serie de países al azar y les asignamos también unos valores (y unos colores) de forma completamente aleatoria.
mapa_3 <- data.frame(
pais = c("Colombia", "Iran", "Myanmar", "Nigeria", "Paraguay", "Canada", "Russia"),
valores = c(9, 15, 5, 22, 13, 8, 10),
color = c("gold","darkred","violet","hotpink","lawgreen", "green", "lightblue")
)
mapa_3 %>%
e_charts(pais) %>%
e_geo_3d(valores, color) %>%
e_title("Colombia, Irán, Myanmar, Nigeria, Paraguay, Canadá, Russia", "Selección de países", left= "center") %>%
e_theme("dark")
Si queremos convertir el mapa 3D anterior a un mapa choropleth habitual que muestre los valores indicados en una escala de valores podemos realizar la siguiente operación:
mapa_3 %>%
e_charts(pais) %>%
e_title("Colombia, Irán, Myanmar, Nigeria, Paraguay, Canadá, Russia", "Selección de países", left= "center") %>%
e_theme("vintage") %>%
e_map(valores) %>%
e_visual_map(min=5, max=22)
Como complemento podemos utilizar e_map_toggle_select()
para crear botones de selección de algunos países. Pongamos que queremos seleccionar los países para los que tenemos datos en el dataframe anterior más España. En ese caso indicaremos la siguiente orden:
mapa_3 %>%
e_charts(pais) %>%
e_title("Colombia, Irán, Myanmar, Nigeria, Paraguay, Canadá, Russia", "Selección de países", left= "center") %>%
e_theme("vintage") %>%
e_map(valores) %>%
e_visual_map(min=5, max=22) %>%
e_map_toggle_select(name = "Colombia", btn = "btn_1") %>%
e_button ("btn_1", "Select Colombia") %>%
e_map_toggle_select(name = "Iran", btn = "btn_2") %>%
e_button ("btn_2", "Select Iran") %>%
e_map_toggle_select(name = "Myanmar", btn = "btn_3") %>%
e_button ("btn_3", "Select Myanmar") %>%
e_map_toggle_select(name = "Nigeria", btn = "btn_4") %>%
e_button ("btn_4", "Select Nigeria") %>%
e_map_toggle_select(name = "Paraguay", btn = "btn_5") %>%
e_button ("btn_5", "Select Paraguay") %>%
e_map_toggle_select(name = "Canada", btn = "btn_6") %>%
e_button ("btn_6", "Select Canada") %>%
e_map_toggle_select(name = "Russia", btn = "btn_7") %>%
e_button ("btn_7", "Select Russia") %>%
e_map_toggle_select(name = "Spain", btn = "btn_8") %>%
e_button ("btn_8", "Select Spain")
Representación de la evolución temporal
Es posible, mediante una representación geográfica con mapas, examinar la evolución temporal de una variable determinada en los países seleccionados. A modo de ejemplo vamos a realizar un mapa 3D que nos muestre la evolución, año por año, de la inversión en I+D realizada por algunos países seleccionados durante el periodo 2000-2016. En esta ocasión los datos los obtenemos de la página web del Banco Mundial. Para ello en primer lugar importamos el dataframe con la información obtenida del dicha institución.
library(readxl)
paises_ID <- read_excel("C:/Users/Usuario/Desktop/r_que_r/r_que_r/content/datasets/paises_ID.xls")
head(paises_ID)
## # A tibble: 6 x 18
## Name `2000` `2001` `2002` `2003` `2004` `2005` `2006` `2007` `2008` `2009`
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Arge~ 0.439 0.425 0.389 0.410 0.404 0.421 0.452 0.460 0.471 0.584
## 2 Arme~ 0.191 0.280 0.253 0.321 0.257 0.258 0.241 0.211 0.224 0.291
## 3 Aust~ 1.89 1.99 2.07 2.17 2.17 2.37 2.36 2.42 2.57 2.60
## 4 Azer~ 0.336 0.340 0.302 0.325 0.298 0.220 0.172 0.170 0.166 0.250
## 5 Belg~ 1.92 2.02 1.89 1.83 1.81 1.78 1.81 1.84 1.92 1.99
## 6 Bulg~ 0.499 0.451 0.468 0.476 0.474 0.446 0.445 0.430 0.448 0.495
## # ... with 7 more variables: `2010` <dbl>, `2011` <dbl>, `2012` <dbl>,
## # `2013` <dbl>, `2014` <dbl>, `2015` <dbl>, `2016` <dbl>
Antes de proceder a realizar el mapa conviene reconfigurar el dataset con el objetivo de hacerlo más funcional para su análisis. Utilizamos la función gather()
del paquete {tidyverse}.
library(tidyverse)
ID <- paises_ID %>%
gather(key="year", value = "ID", 2:18)
head(ID)
## # A tibble: 6 x 3
## Name year ID
## <chr> <chr> <dbl>
## 1 Argentina 2000 0.439
## 2 Armenia 2000 0.191
## 3 Austria 2000 1.89
## 4 Azerbaijan 2000 0.336
## 5 Belgium 2000 1.92
## 6 Bulgaria 2000 0.499
Una vez tenemos el dataframe con la información del porcentage de la inversión en I+D en algunos países seleccionados procedemos a realizar el mapa 3D utilizando la función e_map_3d()
. De esta forma podemos observar de forma sencilla el valor de dicha variable para cada país en cada uno de los años del periodo escogido así como su evolución temporal a lo largo de los años.
ID %>%
group_by(year) %>%
e_charts(Name, timeline = TRUE) %>%
e_title("Research and development expenditure (% of GDP)", left = "center") %>%
e_map_3d(ID) %>%
e_visual_map(min = 0, max = 5)
Al igual que hicimos previamente podemos realizar un ejercicio similar utilizando un mapa choropleth en lugar de 3D utilizando la función e_map()
.
ID %>%
group_by(year) %>%
e_charts(Name, timeline = TRUE) %>%
e_title("Research and development expenditure (% GDP)", left = "center") %>%
e_map(ID) %>%
e_visual_map(min = 0, max = 5)