如何使用闪亮的下载按钮保存情节?
我知道如何为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
?
答案 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)