首页 文章

R Shiny:输入输入或按动作按钮时刷新绘图

提问于
浏览
0

我对R Shiny相当新,但我现在已经坚持了以下问题,并希望你能提供一些帮助:

  • 我尝试刷新R闪亮的绘图,如果输入了新的输入参数,则应刷新 OR 按下操作按钮 . 这应该是直截了当的,但不幸的是我无法解决它,尽管谷歌搜索/阅读说明一段时间 . 建议任何建议 . Web上的任何解决方案似乎都将整个renderplot函数放在observeEvent函数中,但我还需要在其外部使用renderplot来考虑是否可以在不按动作按钮的情况下输入输入 .

  • 创建一个(渲染)绘图时没有问题,该绘图在输入新输入时单独刷新,或在按下按钮时刷新 .

  • 然而,当我同时做两件事时我失败了:我首先尝试复制renderplot函数,包括在observeEvent函数中一次两次得到的结果(以便点击动作按钮)和一次在observeEvent之外(考虑到只刷新绘图的输入)但这只会导致灰色图表在按下动作按钮后延迟约10秒后刷新 . 我想将通过单击动作按钮生成的反应性点击输入直接添加到observe事件之外的渲染图中,但到目前为止我无法运行它 . 任何建议将不胜感激 .

先感谢您 .

1 回答

  • 0

    像这样?:

    编辑:无需将selectInput传递给被动Vals ..这样做:

    library(shiny)
    
    ui <- fluidPage(
      sidebarLayout(
        sidebarPanel(
          selectInput(inputId="select", label="title", choices=LETTERS[1:3], selected = "A"),
          actionButton(inputId="btn", label="refresh")
        ),
        mainPanel(
          plotOutput("scatterPlot")
        )
      )
    )
    
    server <- function(input, output) {
    
      plotSettings <- reactiveValues()
    
      observeEvent(c(input$btn, input$select), {
        plotSettings$values <- runif(100,1,100)
        # plotSettings$title <- input$select
      }, ignoreNULL = FALSE)
    
      output$scatterPlot <- renderPlot({
        plot(plotSettings$values, main=input$select)
      })
    }
    
    shinyApp(ui = ui, server = server)
    

相关问题