如何返回R-Shiny中的第一个情节?

时间:2019-04-08 10:29:52

标签: r shiny shinydashboard shiny-server

我正在研究R-Shiny应用程序。我使用以下代码(演示代码)与剧情进行交互。

  ui <- shinyUI(fluidPage(
   titlePanel("Title"),
   sidebarLayout(
     sidebarPanel(
     ),
     mainPanel(
       plotOutput("graph", width = "100%", click = "plot_click"),
       verbatimTextOutput("click_info")
     )
   )
 ) 
 )

 server <- shinyServer(function(input, output, session) { 
   observe({
     output$graph <- renderPlot({
       plot(1, 1)
     })  
   })


   # interaction click in graph  
   observe({
     if(is.null(input$plot_click$x)) return(NULL)
     x <- sample(20:30,1,F)
     isolate({
       output$graph <- renderPlot({
         draw.single.venn(x)
       }) 
     })

   })
 })
 shinyApp(ui=ui,server=server)

单击鼠标即可更改绘图。我想使用重置按钮回到第一个情节。请帮助。

1 个答案:

答案 0 :(得分:0)

我在侧边栏中添加了一个重置​​按钮。希望对您有所帮助。 This link提供了有关如何执行此类功能的更多信息。

library(shiny)

ui <- shinyUI(fluidPage(
  titlePanel("Title"),
  sidebarLayout(
    sidebarPanel(
      actionButton("Reset", label="Reset Graph")
    ),
    mainPanel(
      plotOutput("graph", width = "100%", click = "plot_click"),
      verbatimTextOutput("click_info")
    )
  )
) 
)

server <- shinyServer(function(input, output, session) { 
  observeEvent(input$Reset,{ output$graph <- renderPlot({ plot(1, 1) }) }, ignoreNULL = F)

  # interaction click in graph  
  observe({
    if(is.null(input$plot_click$x)) return(NULL)
    x <- sample(20:30,1,F)
    isolate({
      output$graph <- renderPlot({
        draw.single.venn(x)
      }) 
    })

  })

})
shinyApp(ui=ui,server=server)