R Shiny Plots在未按下更新按钮的情况下更改



我正在尝试设计一个Shiny应用程序,用户可以更改几个输入,然后按";绘图";按钮生成新的可视化效果。目前,我在事件Reactive中生成了一个数据对象,该数据对象与";绘图";按钮,然后将数据输入renderPlot函数。

这个框架似乎是有效的,只是每当输入改变时,情节就会改变。这通常会导致绘图中的错误,因为不同的输入加载不同的数据。按下";绘图";按钮后,将导致正确的绘图渲染,但我正在努力找到一种方法,以确保绘图永远不会改变,直到按下该按钮。

我认为解决方案是使用";隔离";函数,我几乎在任何地方都尝试过。然而,这些尝试都没有成功。下面是我的代码的(简化的(设置。

ui <- fluidPage(
sidebarLayout(
sidebarPanel(
# several selectInput options
actionButton('plot', label = 'Plot')
)
mainPanel(
plotOutput('outputPlot', height = '3in'),
)
)
)
server <- function(input, output) {
plotData <- eventReactive(input$plot, {
# load various data and organize into a list
return(data.list)
})

outPutPlot <- renderPlot({
plot.data <- plotData()
# manipulate data based on the specific plot, then generate
return(plot)
)
}

你说得对,你需要isolate()所有的反应依赖性而不是CCD_ 2。如果没有一个完整的可运行的示例可以指出哪里可能出了问题。然而,它可能更容易将renderPlot()调用封装在bindEvent()中,这将隔离每件事你只需将你想要依赖的表达式传递给其他论点。

所以试试这样的东西:

bindEvent(renderPlot({ ... }), plotData())

相关内容

最新更新