在Shiny中使用条件面板同时渲染图

时间:2018-09-24 01:51:53

标签: r shiny

这是一个可复制的示例。我试图了解在有光泽的情况下使用conditionalpanel函数。

如何以某种方式调整代码,以便当我同时选中两个复选框时,图和图像将一起呈现? (在主面板上,图位于顶部,图像位于底部)

library(shiny)

ui = fluidPage(
  titlePanel("Plot or Example?"),
  sidebarLayout(
    sidebarPanel(
      checkboxGroupInput("my_choices", "Example or Plot",choices = c("Plot", "Example"), selected = 1),width=2),
    mainPanel(
      conditionalPanel(
        condition = "input.my_choices == 'Plot'",
        plotOutput('my_test1')
      ),
      conditionalPanel(
        condition = "input.my_choices == 'Example'",
        uiOutput("my_test2")
      )
    )
  )
)

server = function(input, output) {

  output$my_test1 <- renderPlot({plot(runif(100))})
  output$my_test2 <- renderUI({
    images <- c("http://www.i2symbol.com/images/abc-123/o/white_smiling_face_u263A_icon_256x256.png")
    tags$img(src= images)
  })
}

1 个答案:

答案 0 :(得分:1)

有几件事要做。

首先,您的selected的{​​{1}}参数应与以下选项之一匹配。在这里,我将其更改为checkboxGroupInput

第二,同时选择"Plot"作为条件。

第三,Shiny不允许多次使用同一输出。为了解决这个问题,我在"input.my_choices.includes('Example') && input.my_choices.includes('Plot')"代码中复制了输出,并在条件面板中引用了两个名称都被选中的重复名称。

server