我正在尝试将 wordcloud2 的输出下载到shiny.io 上托管的闪亮应用程序上。
以前,我在浏览器上下载 wordcloud2 输出时遇到问题,并设法在此处将wordcloud2 输出下载为 png/jpg on shiny解决。
为了比较和清楚起见,我展示了适用于传单地图的类似下载功能。我之所以包含传单地图部分,是因为 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)
任何有关如何从 shiny.io 上托管的应用程序下载 wordcloud2 输出(以任何格式)的见解将不胜感激。