R Shiny:输入输入或按下操作按钮时刷新情节
R Shiny : Refreshing plot when entering input OR pressing an action button
我是 R Shiny 的新手,但一段时间以来一直被以下问题困扰,希望您能提供一些帮助:
我尝试刷新 R shiny 中的绘图,如果输入新的输入参数 或 按下操作按钮,则应该刷新该绘图。这应该很简单,但不幸的是我无法解决它,尽管有一段时间 googling/reading 说明。任何建议都会被推荐。网络上的任何解决方案似乎都将整个 renderplot 函数放在 observeEvent 函数中,但我还需要在它之外添加 renderplot,以考虑无需按下操作按钮即可输入输入的可能性。
我可以毫不费力地创建一个(渲染)图,该图要么在输入新输入时专门刷新,要么在按下按钮时专门刷新。
然而,当同时执行这两项操作时,我失败了:我首先尝试复制 renderplot 函数,包括在 observeEvent 函数中两次生成的输出(考虑到单击操作按钮)和一个observeEvent 之外的时间(仅考虑刷新绘图的输入)但这只会导致一个灰色的图表,在按下操作按钮时延迟约 10 秒后刷新。我想将通过单击操作按钮直接生成的反应式单击输入添加到观察事件之外的渲染图中,但到目前为止我无法将其添加到 运行。如有任何建议,我们将不胜感激。
提前致谢。
像这样?:
编辑:无需将 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)
我是 R Shiny 的新手,但一段时间以来一直被以下问题困扰,希望您能提供一些帮助:
我尝试刷新 R shiny 中的绘图,如果输入新的输入参数 或 按下操作按钮,则应该刷新该绘图。这应该很简单,但不幸的是我无法解决它,尽管有一段时间 googling/reading 说明。任何建议都会被推荐。网络上的任何解决方案似乎都将整个 renderplot 函数放在 observeEvent 函数中,但我还需要在它之外添加 renderplot,以考虑无需按下操作按钮即可输入输入的可能性。
我可以毫不费力地创建一个(渲染)图,该图要么在输入新输入时专门刷新,要么在按下按钮时专门刷新。
然而,当同时执行这两项操作时,我失败了:我首先尝试复制 renderplot 函数,包括在 observeEvent 函数中两次生成的输出(考虑到单击操作按钮)和一个observeEvent 之外的时间(仅考虑刷新绘图的输入)但这只会导致一个灰色的图表,在按下操作按钮时延迟约 10 秒后刷新。我想将通过单击操作按钮直接生成的反应式单击输入添加到观察事件之外的渲染图中,但到目前为止我无法将其添加到 运行。如有任何建议,我们将不胜感激。
提前致谢。
像这样?:
编辑:无需将 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)