我正在尝试使绘图可绘制,但是在某些情况下需要显示“不可用”消息,这是我使用validate(need())所做的。但是,如果显示了该图,然后变为无效,则画笔区域仍然存在(参见图片)。
最小的可复制示例:
library(shiny)
ui <- fluidPage(
checkboxInput("Validate", label="Validate?", value=T),
plotOutput("MainPlot", brush=brushOpts("MainPlotBrush", direction='x'))
)
server <- function(input, output) {
output$MainPlot<-renderPlot({
validate(need(input$Validate, message="This plot failed to render"))
hist(rnorm(100))
})
}
shinyApp(ui = ui, server = server)
当绘图无效时,有没有办法终止笔刷功能?
答案 0 :(得分:0)
Ryan Morton的建议提供了一种解决方案,该解决方案可在无效时删除画笔。您可以在renderUI而不是renderPlot中进行验证。
library(shiny)
ui <- fluidPage(
checkboxInput("Validate", label="Validate?", value=T),
uiOutput("MainPlotSpot")
)
server <- function(input, output) {
output$MainPlotSpot<-renderUI({
validate(need(input$Validate, message="This plot failed to render"))
plotOutput('MainPlot', brush=brushOpts("MainPlotBrush", direction='x'))
})
output$MainPlot<-renderPlot({
hist(rnorm(100))
})
}
shinyApp(ui = ui, server = server)