R Shiny - Wordcloud2 взлом загрузки кнопка - PullRequest
0 голосов
/ 04 февраля 2020

Я хочу создать несколько облаков слов, используя пакеты wordcloud и wordcloud2. Я могу создать загрузку для wordcloud, созданного пакетом wordcloud, но как только я рендерим wordcloud2 -wordcloud, кнопка загрузки перестает работать (только позволяет загружать html вместо .png).

Я добавил пример для его воспроизведения:

library("shiny")
library("wordcloud")
library("wordcloud2")
library("tm")

ui <- fluidPage(plotOutput("plot1"), downloadButton('plot1download'))

server <- function(input, output, session) {
  output$plot1 <- renderPlot({
    wordcloud(data(crude))
  })
  output$plot2 <- renderWordcloud2({
    wordcloud2(demoFreq)
  })
  output$plot1download <- downloadHandler(
    filename = function() {
      paste('wordcloud', '.png', sep='')
    },
    content = function(file) {
      device <- function(..., width, height) grDevices::png(...)
      ggsave(file, plot = wordcloud(data(crude)), device = device)
    }
  )
}

shinyApp(ui, server)

Код выше работает, но если я добавлю еще один сюжет (plotOutput("plot2")), он сломается:

library("shiny")
library("wordcloud")
library("wordcloud2")
library("tm")

ui <- fluidPage(plotOutput("plot1"), downloadButton('plot1download'), wordcloud2Output("plot2"))

server <- function(input, output, session) {
  output$plot1 <- renderPlot({
    wordcloud(data(crude))
  })
  output$plot2 <- renderWordcloud2({
    wordcloud2(demoFreq)
  })
  output$plot1download <- downloadHandler(
    filename = function() {
      paste('wordcloud', '.png', sep='')
    },
    content = function(file) {
      device <- function(..., width, height) grDevices::png(...)
      ggsave(file, plot = wordcloud(data(crude)), device = device)
    }
  )
}

shinyApp(ui, server)

У кого-нибудь есть идея, почему это происходит и как решить проблему?

1 Ответ

0 голосов
/ 07 февраля 2020

Это, похоже, ошибка в CRAN-версии wordcloud2. Установите исправительную версию из GitHub с remotes::install_github("lchiffon/wordcloud2") для исправления.

...