library(highcharter)
library(dplyr)

options(highcharter.download_map_data = TRUE)

hcmap("custom/asia")
mapdata <- get_data_from_map(download_map_data("custom/asia"))
glimpse(mapdata)
## Observations: 53
## Variables: 14
## $ hc-group       <chr> "admin0", "admin0", "admin0", "admin0", "admin0...
## $ hc-middle-x    <dbl> 0.56, 0.36, 0.41, 0.59, 0.46, 0.75, 0.44, 0.32,...
## $ hc-middle-y    <dbl> 0.52, 0.10, 0.48, 0.52, 0.29, 0.50, 0.48, 0.46,...
## $ hc-key         <chr> "ir", "ph", "sa", "jp", "th", "om", "ye", "in",...
## $ hc-a2          <chr> "IR", "PH", "SA", "JP", "TH", "OM", "YE", "IN",...
## $ name           <chr> "Iran", "Philippines", "Saudi Arabia", "Japan",...
## $ labelrank      <chr> "2", "2", "2", "2", "3", "4", "3", "2", "2", "3...
## $ country-abbrev <chr> "Iran", "Phil.", "Saud.", "Japan", "Thai.", "Om...
## $ subregion      <chr> "Southern Asia", "South-Eastern Asia", "Western...
## $ region-wb      <chr> "Middle East & North Africa", "East Asia & Paci...
## $ iso-a3         <chr> "IRN", "PHL", "SAU", "JPN", "THA", "OMN", "YEM"...
## $ iso-a2         <chr> "IR", "PH", "SA", "JP", "TH", "OM", "YE", "IN",...
## $ woe-id         <chr> "23424851", "23424934", "23424938", "23424856",...
## $ continent      <chr> "Asia", "Asia", "Asia", "Asia", "Asia", "Asia",...
fakedata <- mapdata %>% 
  select(`hc-a2`) %>% 
  mutate(fakevalue = rexp(nrow(.)) + 1)
glimpse(fakedata)
## Observations: 53
## Variables: 2
## $ hc-a2     <chr> "IR", "PH", "SA", "JP", "TH", "OM", "YE", "IN", "KR"...
## $ fakevalue <dbl> 1.445306, 1.077457, 1.553660, 1.161984, 1.207475, 6....
hcmap("custom/asia", data = fakedata, value = "fakevalue", joinBy = "hc-a2") %>% 
  hc_plotOptions(
    series = list(
      borderColor = "transparent",
      dataLabels = list(
        enabled = TRUE,
        format = "{point.properties.name}"
        )
      )
    ) %>% 
  hc_colorAxis(stops = color_stops()) %>%
  hc_legend(valueDecimals = 0, valueSuffix = "%") %>%
  hc_mapNavigation(enabled = TRUE) %>% 
  hc_add_theme(hc_theme_db())