Как вернуться к первому сюжету в R-Shiny? - PullRequest
0 голосов
/ 08 апреля 2019

Я работаю над приложением 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 голосов
/ 08 апреля 2019

Я добавил кнопку сброса на вашу боковую панель.Надеюсь, это полезно. Эта ссылка содержит дополнительную информацию о том, как выполнять этот тип функций.

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)
...