我正在开发Shiny的应用程序。我想使用提交按钮渲染绘图。如果用户检查InputCheckBox,我也想打印标签。我能够通过按钮渲染绘图。但是,当检查复选框时,它不起作用。
这是代码:
library(shiny)
library(plotly)
ui <- fluidPage(
actionButton('RUN', 'Run'),
checkboxInput('PrintLab', 'Label', FALSE),
plotlyOutput("plot1")
)
server = function(input, output) {
output$plot1 <- renderPlotly({
req(input$RUN)
isolate({
ggplotly(ggplot(data = mtcars, aes(wt, hp)) +
geom_point(size=1, colour = "grey"))
})
req(input$PrintLab)
isolate({
ggplotly(ggplot(data = mtcars, aes(wt, hp)) +
geom_point(size=1, colour = "grey") +
geom_text(aes(label=wt), size=3, colour = "black"))
})
})
}
runApp(shinyApp(ui, server))
我不是闪亮的专家,但是req(input$PrintLab)
看上去并不适合我。这会完成您的目标吗?
server <- function(input, output) {
output$plot1 <- renderPlotly({
req(input$RUN)
if (!input$PrintLab) {
ggplotly(ggplot(data = mtcars, aes(wt, hp)) +
geom_point(size=1, colour = "grey"))
} else {
ggplotly(ggplot(data = mtcars, aes(wt, hp)) +
geom_point(size=1, colour = "grey") +
geom_text(aes(label=wt), size=3, colour = "black"))
}
})
}
(我敢肯定有更好的方法。那只是我的头顶。)