Экспорт visNetwork в png с помощью downloadHandler в Shiny (R) дает пустой файл
Я бы хотел, чтобы конечные пользователи могли экспортировать.png графики visNetwork, созданной и развернутой с помощью Shiny. Я могу сделать это с помощью visExport
линия в конце моего renderVisNetwork
код, но мне не нравится внешний вид кнопки, которая генерируется в выводе, сама кнопка включается в экспортированный файл.png, а качество самого файла.png не так уж и велико. Мне нравится внешний вид кнопки, сгенерированной downloadButton
в интерфейсе, но я делаю что-то не так с downloadHandler
на стороне сервера. Во время работы в браузере я нажимаю кнопку загрузки, получаю диалоговое окно загрузки и могу сохранить файл, но файл пуст (размер файла 318 байт). Попытка как.pdf тоже не работает. Вот мой код:
ui.R:
downloadButton('ConDL', label='Download png')
server.R:
# Create network
ConNet <- function(){
visNetwork(Nodes(), Edges()) %>%
#all the other stuff to create the network which works fine
}
# Draw visualization - works fine
output$ConNet <- renderVisNetwork({
ConNet()
})
# Download png of visualization - no errors displayed in browser or
# console when testing, but exports blank png
output$ConDL <- downloadHandler(
filename="Con.png",
content= function(file) {
png(file)
ConNet()
dev.off()
}
)
Я следовал приведенному здесь совету о создании объекта с функцией вместо реактивной: Загрузка png из Shiny (R). Включение предыдущих реактивов, которые подают в ConNet, к функциям также неэффективно. У меня приложение открыто в браузере (Firefox), а не через панель предварительного просмотра. Попытка print(ConNet())
в разделе контента тоже не помогает, так что я не уверен, что мне не хватает.
Бонус, если я могу получить.png, чтобы исключить кнопки навигации, созданные с visInteraction
когда я создаю сеть - они полезны для интерактивной части, но загромождают статичную графику.
1 ответ
Я не понимаю твою проблему. Это может помочь вам загрузить сеть из блестящего API