首页 > 解决方案 > RShiny - 选择情节

问题描述

我有 4 个图,并且希望一次只显示一个由用户选择的图。我不想要 4 个单独的选项卡。任何示例代码都非常感谢。问候

标签: rshiny

解决方案


您可以toggleshinysj包中使用来显示/隐藏图:

library(shiny)
library(shinyjs)

shinyApp(
  ui = fluidPage(
    useShinyjs(), #Necessary to activate shinyjs
    selectInput("select", "Select plot:", 1:4),
    plotOutput("p1"),
    plotOutput("p2"),
    plotOutput("p3"),
    plotOutput("p4")
  ),
  server = function(input, output) {
    output$p1 <- renderPlot({ plot(iris) })
    output$p2 <- renderPlot({ plot(mtcars) })
    output$p3 <- renderPlot({ plot(0) })
    output$p4 <- renderPlot({ plot(1) })
    
    observeEvent(input$select, {
      req(input$select)
      shinyjs::toggle("p1", condition = input$select == 1)
      shinyjs::toggle("p2", condition = input$select == 2)
      shinyjs::toggle("p3", condition = input$select == 3)
      shinyjs::toggle("p4", condition = input$select == 4)
    })
    
  }
)

推荐阅读