使用下载处理程序将ggplot图像保存为闪亮的 [英] Using a download handler to save ggplot images in shiny

查看:88
本文介绍了使用下载处理程序将ggplot图像保存为闪亮的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发闪亮的应用程序.在闪亮的情况下,我使用动作按钮绘制了一个简单的情节.我已包含一个下载按钮,用于下载UI中现在的图.从我的代码(plot3)

I am developing an application in shiny.In shiny, I am rendering a simple plot using the action button. I have included a download button to download the the plot that is now in UI. from my code(plot3)

我尝试了以下代码来保存图像,但出现错误

I tried the below code, to save the image, but I am getting an error

找不到plotInput.

plotInput not found.

任何人都可以建议我要去哪里了吗

Could any one suggest where i am going wrong.

下面是我的代码供参考. 用户界面:

Below is my code for reference. UI:

ui <- tabItem(tabName = "models2",
        fluidPage(
          fluidRow(
            infoBoxOutput("overview")
          ),
          fluidRow(
            actionButton("result1","Generate Result"),
            downloadButton('downloadPlot','Download Plot'),
            plotOutput("plot3")
          )
        ))

服务器

server <- function(input,output,session{
 output$overview <- renderValueBox({
      valueBox(
        paste("91"),"Overview",icon=icon("hourglass"),
        color="green"
      )
    })
  observeEvent(input$result1,{
  output$plot3  <- renderPlot({
    ggplot(data=timedata, aes(x=dat1, y=yes, group=3))+ 
      geom_point(shape=1)+
      coord_cartesian(xlim=c(dat1_xlowlim,dat1_xhighlim))+
      labs(title="Probability",x="Date",y="True probability")  
  })
  })
  output$downloadPlot <- downloadHandler(
    filename = function(){paste(input$plot3,'.png',sep='')},
    content = function(plot3){
      ggsave(plot3,plotInput())

    }
  )
})

还要注意,我的闪亮工作室和R工作室都在R环境中.

Also, to note my shiny and R studio are in R environment.

推荐答案

library(shiny)
library(shinydashboard)
ui <- tabItem(tabName = "models2",
          fluidPage(
            fluidRow(
              infoBoxOutput("overview")
            ),
            fluidRow(
              actionButton("result1","Generate Result"),
              downloadButton('downloadPlot','Download Plot'),
              plotOutput("plot3")
            )
          ))

server <- function(input,output,session){
           output$overview <- renderValueBox({
           valueBox(
            paste("91"),"Overview",icon=icon("hourglass"),
           color="green"
      )
  })
    data <- reactiveValues()
    observeEvent(input$result1,{
    data$plot <- ggplot(data=iris, aes(x=Sepal.Length, y=Sepal.Width))+ 
    geom_point(shape=1)})

    output$plot3  <- renderPlot({  data$plot })

    output$downloadPlot <- downloadHandler(
         filename = function(){paste("input$plot3",'.png',sep='')},
         content = function(file){
          ggsave(file,plot=data$plot)
    }
  )
}
shinyApp(ui, server)

这篇关于使用下载处理程序将ggplot图像保存为闪亮的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆