Ram*_*mos 5 javascript r shiny
我正在shiny(ui和server)上开发一个应用程序,我想用Highchart包的hcmap函数实现一个地图。但是,在实现地图时,我发现函数 hcmap 与以下站点存在依赖关系:https ://code.highcharts.com/mapdata/ 。
所以我的目标是在不使用互联网连接的情况下以本地方式实现地图,但使用相关的 javascript 文件。我尝试了以下解决方案:我从https://code.highcharts.com/mapdata/检索了 javascript 文件并将其列在 www 目录中,但它没有给我任何好的结果。这是我使用的代码:
library(shinydashboard)
library(shinydashboardPlus)
library(highcharter)
library(shiny)
shinyUI(
dashboardPagePlus(
dashboardHeader(),
dashboardSidebar(),
dashboardBody(
fluidRow(box(width = 6,title="map",highchartOutput("map")))
)
)
)
shinyServer(function(input, output) {
output$map=renderHighchart({
data_fake=data.frame(code=c("RZ","MT","TD","OR","FB","SM","MK","DA"
,"GE","LB","OD","TO","TH","GB","CO","GC"),
value=c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16)
)
hcmap(map=tags$head(tags$script(src="map.js")), data = data_fake, value =
"value",joinBy = c("hc-a2", "code"), name = "Fake
data",download_map_data=FALSE,
dataLabels = list(enabled = TRUE, format = '{point.name}'),
borderColor = "gray", borderWidth = 0.9,
tooltip = list(valueDecimals = 2, valuePrefix = "DH", valueSuffix = "
MAD"))%>% hc_mapNavigation(enabled = TRUE)
})
})
Run Code Online (Sandbox Code Playgroud)
我希望输出是地图,但不依赖于https://code.highcharts.com/mapdata/站点,即在我的应用程序目录中以本地方式使用 javascript 文件。
使用我使用的代码映射结果:
让我们尝试另一个环岛
trace(hcmap, edit=T)修改 hcmap 来将您所需的地图更改为对象:像这样:
if (download_map_data) {
mapdata <- download_map_data(map)
return(mapdata)
}
Run Code Online (Sandbox Code Playgroud)
单击编辑窗口中的“保存”并执行:my_map <- hcmap("countries/us/us-all-all")将美国地图更改为您想要的地图。
将 my_map 保存为 RDS:saveRDS(my_map, "my_map.RDS")
再次编辑 hcmap: trace(hcmap, edit=T),现在您想要读取存储的地图而不是下载它:
if (download_map_data) {
mapdata <- readRDS("my_map.RDS")
}
在编辑窗口中单击“保存”并执行所需的地图:
p<-hcmap("countries/us/us-all-all", data = 失业, name = "失业", value = "value", joinBy = c("hc-key", "code"), borderColor = "透明") %>% hc_colorAxis(dataClasses = color_classes(c(seq(0, 10, by = 2), 50))) %>% hc_legend(layout = "垂直", 对齐 = "右", 浮动 = TRUE , valueDecimals = 0, valueSuffix = "%") p
如果一切都好的话,我会离线完成这个技巧!