0

我正在 Shiny 中开发应用程序。我想使用提交按钮渲染情节。如果用户选中输入复选框,我还想打印标签。我可以通过按钮渲染情节。但是当复选框被选中时它不起作用。

这是代码:

 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))
4

1 回答 1

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"))
    }

  })
}

(我确信有更好的方法。这只是我的想法。)

于 2017-09-11T20:16:29.507 回答