Downloadhander(保存情节)基本情节闪亮

时间:2017-11-13 09:44:57

标签: r shiny

如何使用闪亮的下载按钮保存情节? 我知道如何为ggplot做这件事,但我找不到如何为基本plot()做到这一点。

示例:

library(shiny)
library(ggplot2)


# ui
ui <- fluidPage(
  downloadButton("save", "save")
)


# server
server <- function(input, output){

  p <- reactive({ggplot(iris, aes(Sepal.Length, Sepal.Width)) + geom_point()})
  p2 <- reactive({dotchart(iris$Sepal.Length, iris$Species, iris$Species)})

  output$save <- downloadHandler(
    filename = "save.png" ,
    content = function(file) {
      ggsave(p(), filename = file)
    })
}


# run
shinyApp(ui, server)
上面

实现了保存情节p。现在如何实现保存情节p2

1 个答案:

答案 0 :(得分:3)

您可以使用设备图形在png对象上编写它。检查代码。

library(shiny)
library(ggplot2)


# ui
ui <- fluidPage(
  downloadButton("save", "save")
)


# server
server <- function(input, output){

  p <- reactive({ggplot(iris, aes(Sepal.Length, Sepal.Width)) + geom_point()})
  p2 <- reactive({dotchart(iris$Sepal.Length, iris$Species, iris$Species)})

  output$save <- downloadHandler(
    filename = "save.png" ,
    content = function(file) {
      #ggsave(p(), filename = file)
      png(file = file)
      p2()
      dev.off()
    })
}


# run
shinyApp(ui, server)