R 如何在Shining中下载Sankey plot

R 如何在Shining中下载Sankey plot,r,image,download,shiny,R,Image,Download,Shiny,从我闪亮的应用程序代码下载绘制的sankey图表时出现问题。事实上,我是根据R文档打字的,不过这里没有什么好用的! 这是密码 ui <- fluidPage( downloadButton('d', 'Download graph') ) server <- function(input, output) { output$d <- downloadHandler( filename = function() { 'SankeyPlot.p

从我闪亮的应用程序代码下载绘制的sankey图表时出现问题。事实上,我是根据R文档打字的,不过这里没有什么好用的! 这是密码

ui <- fluidPage( downloadButton('d', 'Download graph') )

server <- function(input, output) {

  output$d <- downloadHandler(
      filename = function() {
         'SankeyPlot.png'
       },
       content = function(file) {
         png(filename = "SankeyPlot.png",width = 550,height = 480,units = px,type = 'png')
         print(sankeyNetworkOutput("splot"))
         dev.off()
       },
      contentType = 'image/png'
     )

shinyApp(ui = ui, server = server)

uiSankeyNetworkD3返回一个“networkD3”小部件,而不是png。我认为您应该使用html小部件加载器或类似的函数,如SaveNetwork

诸如此类:

library(networkD3)
library(shiny)

ui <- fluidPage(
  downloadButton('d', 'Download graph'),  
  simpleNetworkOutput("network")
)

server <- function(input, output) {

  network <- reactive({
    src <- c("A", "A", "A", "A",
             "B", "B", "C", "C", "D")
    target <- c("B", "C", "D", "J",
                "E", "F", "G", "H", "I")
    networkData <- data.frame(src, target)
    simpleNetwork(networkData)
  })

  output$network <- renderSimpleNetwork({
    network()
  })

  output$d <- downloadHandler(
    filename = function() {
      'SankeyPlot.html'
    },
    content = function(file) {
      saveNetwork(network(), file)
    }
  )
}

shinyApp(ui = ui, server = server)
库(networkD3)
图书馆(闪亮)
ui


这就是如果我把你的代码@Stéphane Laurent包含进来,我会得到的结果。这个问题是sankey特有的,还是在底图中也会发生?似乎给定的代码包含不相关的信息,您可以编辑您的问题以删除所有不必要的代码吗?徽标问题很常见,downlaod绘图png不仅仅适用于sankey!我不知道为什么
sankeyNetworkOutput
?请在您的代码中包含
library(thispackage)
,以及使您的代码具有可复制性的所有其他内容。我建议将此问题分成两部分-现在这是两个不相关的问题(这使得本文过于宽泛),事实上,我在问题仍然存在的情况下添加了库(networkD3)!你能用一个简单的例子解释一下吗?我认为你的答案是最正确的!我已经这么想了,但是SaveNetwork产生了错误!我试过这样做:输出$d您能提到产生的错误吗?我不在工作站,所以无法复制。它根本无法下载,浏览器说:服务器有问题!好吧,这是最接近的答案,但仍然不起作用,因为它没有给你绘制的图形,它实际上给你的网页组件,我用在我的闪亮的应用程序@对不起,我不明白你想要什么。你能重新措辞吗?你的应用程序应该做什么?我想要的是,每当我点击下载,我就会得到已经绘制为图像、pdf或任何其他文件的图表。这意味着我要打印并保存已绘制的图表!我不明白你为什么不在应用程序中显示图形,然后单击下载下载。这是你想要的吗?是的,当然,但是你写的代码不是那样工作的!它只下载一个网页“html”,其中包含除图形之外的所有应用程序组件!!