Скачивание вывода wordcloud2 на глянце.io не работает - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь загрузить выходные данные из wordcloud2 в блестящем приложении, размещенном на bright.io.

Раньше у меня была проблема с загрузкой вывода wordcloud2 в браузер, и мне удалось решить ее здесь Загрузка вывода wordcloud2 в виде png / jpg на блестящем .

Для сравнения и ясности я показал похожую функцию загрузки, которая работает для карт листовок. Причина, по которой я включил раздел листовки с картами, потому что и выходы wordcloud 2, и листовки карт являются html, поэтому я подумал, что они будут вести себя одинаково.

Код ниже показывает

 library(leaflet)
 library(htmlwidgets)
 library(webshot)
 library(shiny)
  library(wordcloud2)

      ui <- fluidPage(
           leafletOutput("map"),
            downloadLink("downloadMap", "Download1"),
            downloadLink("savemap", "Download2"), 
            wordcloud2Output("wordclH2020"),
            downloadLink( "savecloud", "DImage"),
            downloadLink( "saveword", "DImage2")
                  )

      server <- function(input,output) {
         ###### MAP SECTION ##############################
            mapReact <- reactive({
                    leaflet() %>%      
 addTiles('http://{s}.tile.openstreetmap.de/tiles/osmde/{z}/{x}/{y}.png') %>% 
     addCircles(12.5,42,radius=500) %>% addMarkers(12,42,popup="Rome")
      })

         output$map <- renderLeaflet({
                     mapReact()
                          })

     ##### map download 1 works on browser but not shiny.io ###########
        output$downloadMap <- downloadHandler(
                  filename = paste("LeafletMap", '.png', sep=''),
                  content = function(file) {
                  owd <- setwd(tempdir())
                  on.exit(setwd(owd))
              saveWidget(mapReact(), "temp.html", selfcontained = FALSE)
                webshot("temp.html", file = file, cliprect = "viewport")
                         })

        ##### map download 2 works on both browser and  shiny.io ###########
      output$savemap <- downloadHandler(
                filename = "map.html",
                content = function(file){
                saveWidget(
               widget = mapReact()
                , file = file
              )
               }
               )
 ############### WORD CLOUD SECTION ###############################
         wordcl <- reactive ({
            wordcloud2(demoFreq, color = "random-light", backgroundColor = "grey")  })

      output$wordclH2020 <- renderWordcloud2({  wordcl() })

   ##### wordcloud download 1 works on browser but not shiny.io ###########  
             output$savecloud <- downloadHandler(
                   filename = paste("LeafletMap", '.png', sep=''),
                   content = function(file) {
                  owd <- setwd(tempdir())
                  on.exit(setwd(owd))
               saveWidget(wordcl(), "temp.html", selfcontained = FALSE)
           webshot("temp.html", delay =15, file = file, cliprect = "viewport")

             })
  ##### wordcoud download 2 does not work on browser nor shiny.io ###########
    output$saveword <- downloadHandler(
             filename = "word.html",
              content = function(file){
              saveWidget(
              widget = wordcl()
                , file = file
                )
               }
               )

            }

      shinyApp(ui, server)

Мы будем благодарны за понимание того, как загрузить вывод wordcloud2 (в любом формате) из приложения, размещенного на bright.io.

1 Ответ

0 голосов
/ 22 января 2019

Я наконец понял из этой записи , что мне нужно установить фантомные зависимости, добавив следующие строки кода в секцию вызова библиотеки

       webshot::install_phantomjs() 
       webshot:::find_phantom()

при публикации моего приложения на spark.io

...