使用hc_add_series_map()而不是hcmap()可视化地图上的气泡

时间:2019-02-22 19:50:39

标签: r shiny r-markdown r-highcharter

我正在尝试使用HighCharter可视化气泡图。

enter image description here

使用此代码,我做到了完美

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"))

非洲的外部地理数据最初来自from this source,并与hcmap()一起使用。

但是我将其转换为RDS并在本地使用。可用的here

我的问题是由于公司IT安全限制,我无法使用我的代码和外部数据。我无法在Connect上使用Shiny / RMarkdown部署此代码,该代码已被阻止。

所以我目前的解决方案

使用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"
)

但是它不能很好地工作,我一团糟。

enter image description here

如何在没有'hcmap'的情况下使用hc_add_series_map()(或任何其他方式)创建气泡图并提取外部数据。

谢谢!

0 个答案:

没有答案