Визуализируйте пузыри на карте, используя hc_add_series_map() вместо hcmap()

Я пытаюсь визуализировать карту пузырей, используя highcharter.

введите здесь описание изображения

Я сделал это отлично, используя этот код

library(highcharter)
library(tidyverse)

hcmap("custom/africa") %>%
hc_add_series(data = fake_data, type = "mapbubble", maxSize = '10%', color = 
"Red", showInLegend = FALSE) %>% 
hc_legend(enabled = FALSE)  

Мои данные

> dput(fake_data)
structure(list(country = c("DZ", "CD", "ZA", "TZ"), lat = c(28.033886, 
-4.038333, -30.559482, -6.369028), lon = c(1.659626, 21.758664, 
22.937506, 34.888822), name = c("Algeria", "Congo, Dem. Rep", 
"South Africa", "Tanzania"), z = c(20, 5, 10, 1)), class = c("spec_tbl_df", 
"tbl_df", "tbl", "data.frame"), row.names = c(NA, -4L), spec = 
structure(list(
cols = list(country = structure(list(), class = c("collector_character", 
"collector")), lat = structure(list(), class = c("collector_double", 
"collector")), lon = structure(list(), class = c("collector_double", 
"collector")), name = structure(list(), class = c("collector_character", 
"collector")), z = structure(list(), class = c("collector_double", 
"collector"))), default = structure(list(), class = c("collector_guess", 
"collector")), skip = 1), class = "col_spec"))

Внешние геоданные для Африки изначально поступают из этого источника и используются с hcmap().

Но я превращаю его в RDS и использую локально. Доступно здесь.

Моя проблема в том, что я не могу использовать свой код и внешние данные из-за ограничений корпоративной ИТ-безопасности. Я не могу развернуть этот код с помощью Shiny/RMarkdown на Connect, он заблокирован.

Итак, мое решение в настоящее время

Используйте те же данные в формате RDS

africa_map_data <- readRDS("africa_map_data.RDS")

И используйте hc_add_series_map() с локальными данными вместо hcmap().

highchart() %>%
hc_add_series_map(
map = africa_map_data,
df = fake_data,
value = "z",
joinBy = c("hc-a2", "country"),
type = "mapbubble",
maxSize = '10%',
color = "Red"
)

Но это плохо работает, я получаю беспорядок.

введите здесь описание изображения

Как создать пузырьковую карту с помощью hc_add_series_map() (или любым другим способом) без «hcmap» и подтягивания внешних данных.

Спасибо!


person Anakin Skywalker    schedule 22.02.2019    source источник
comment
Привет! Вы можете использовать этот трюк здесь: с локальным файлом javascript в rshining">stackoverflow.com/questions/54727132/ для запуска в автономном режиме library(highcharter) library(tidyverse) hcmap("custom/africa") %>% hc_add_series(data = fake_data, type = "mapbubble", maxSize = '10%', color = "Red", showInLegend = FALSE) %>% hc_legend(enabled = FALSE)   -  person LocoGris    schedule 23.02.2019
comment
@JonnyCrunch, я все сделал. Моя проблема - пытаюсь развернуть на Коннекте, не получается пока. Это RMarkdown с run:shiny. Чистый RMarkdown работает, но с Shiny умирает. Мои журналы выглядят так: 23.02 14:47:27.939 попытка URL 'code.highcharts. com/mapdata/custom/africa.js' 23/02 14:47:28.199 Выход из строк 16-22 (Test.Rmd) 23/02 14:47:28.200 23/02 14:47:28.201 Предупреждение : Ошибка в файле загрузки: невозможно открыть URL-адрес 'code.highcharts.com/mapdata/custom /africa.js' 23/02 14:47:28.213 155: download.file 23/02 14:47:28.213 154: download_map_data   -  person Anakin Skywalker    schedule 23.02.2019
comment
Вот почему я пытаюсь запустить его, не используя hcmap(custom/africa). Мне нужно запустить его локально как RDS из каталога моего проекта. Это решит всю боль.   -  person Anakin Skywalker    schedule 23.02.2019
comment
Нельзя ли загрузить карту на другой компьютер, как по ссылке выше, переместить ее на свой локальный сервер и запустить модифицированную версию функции hcmap чтения с локального хоста, а не из Интернета? Лучший   -  person LocoGris    schedule 23.02.2019
comment
@JonnyCrunch, честно говоря, я не уверен, что ты имеешь в виду. Можете ли вы уточнить, пожалуйста? Вот что я пытаюсь прояснить, как запустить его из локального каталога, эти данные по Африке.   -  person Anakin Skywalker    schedule 24.02.2019