我正在开发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))
答案 0 :(得分:0)
我没有闪亮的专家,但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"))
}
})
}
(我确定那里有更好的方法。这只是我的头脑。)