hcmap с локальным файлом javascript в R Shiny - PullRequest
0 голосов
/ 16 февраля 2019

Я разрабатываю приложение на глянцевой (пользовательский интерфейс и сервер) и хочу реализовать карту с помощью функции hcmap пакета Highchart.Но при реализации карты я обнаружил, что существует зависимость функции hcmap от сайта: https://code.highcharts.com/mapdata/.

Поэтому моя цель состоит в том, чтобы реализовать карту, но со связанным файлом javascript локальным способом без использованияподключение к интернету.Я попробовал следующее решение: я получил файл javascript из https://code.highcharts.com/mapdata/ и перечислил его в каталоге 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<span class="math-container">$head(tags$</span>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)
})

})

Я ожидаю, что вывод будет картой, но без какой-либо зависимости от сайта https://code.highcharts.com/mapdata/, то есть для использования файла javascript локальным способом вкаталог моей заявки.

Карта результата с кодом, который я использовал:

Map result with the code I used

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

Давайте попробуем еще одну кольцевую развязку

  1. с помощью trace(hcmap, edit=T) изменим hcmap, чтобы повернуть желаемую карту как и объект:

Как это:

 if (download_map_data) {
    mapdata <- download_map_data(map)
    return(mapdata)
  }

Нажмите Сохранить в окне редактирования и выполните: 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 («страны / США / все-все-все», данные = безработица, имя = «безработица», значение = «значение»", joinBy = c (" hc-key "," code "), borderColor =" transparent ")%>% hc_colorAxis (dataClasses = color_classes (c (seq (0, 10, by = 2), 50)))%>% hc_legend (layout = "вертикальный", выровнять = "правый", плавающий = TRUE, valueDecimals = 0, valueSuffix = "%") p

Это все в порядке, я будусделать трюк в автономном режиме!

0 голосов
/ 16 февраля 2019

Ramos!

Если ваш Shiny использует ограниченное количество карт, почему вы не просто сохраняете его в качестве RDS, вы можете получить их позже в автономном режиме?

data(unemployment)

p<-hcmap("countries/us/us-all-all", data = unemployment,
         name = "Unemployment", value = "value", joinBy = c("hc-key", "code"),
         borderColor = "transparent") %>%
  hc_colorAxis(dataClasses = color_classes(c(seq(0, 10, by = 2), 50))) %>% 
  hc_legend(layout = "vertical", align = "right",
            floating = TRUE, valueDecimals = 0, valueSuffix = "%") 

saveRDS(p, "foo.RDS")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...