复选框未在闪亮的应用中选中

时间:2016-07-30 20:28:43

标签: r checkbox shiny

我需要为学校项目准备一个闪亮的应用程序。 这是它看起来像什么的链接

https://yuvaln.shinyapps.io/olympics/

如果您查看应用程序,您会看到一个名为medals的复选框。当您 打开应用程序,他们都被选中,但如果用户决定取消选中它们,则应该有一个小错误,不应该绘制图表。

当我取消选中应用中的所有框时,我无法解决此问题 它绘制一个空图画

这是代码的重要部分:

 fluidRow(
  column(3,checkboxGroupInput("Medals", label = strong("Medals"),
  choices = list("Total" = "TOTAL", "Gold" = 'GOLD',
  "Silver" = 'SILVER','Bronze'='BRONZE'),
   selected = c('TOTAL','GOLD','SILVER','BRONZE')))),

  fluidRow(
    mainPanel(plotOutput('coolplot'),width = '40%'))
)    
)
  server <- function(input, output){output$coolplot<-renderPlot(plot.medals2(input$country,
  input$Startingyear,input$Endingyear,input$Medals))}
  shinyApp(ui = ui, server = server)

我正在使用一个函数plot.medals2,它获取奖牌矢量,开始年份,结束年份,国家并返回图形的图形。

1 个答案:

答案 0 :(得分:0)

由于您没有发布完整代码,我使用Iris数据集重新创建了一个示例。我想下面的代码可以回答你的问题...

library(shiny)
library(ggplot2)
library(dplyr)

ui <- shinyUI(fluidPage(

    # Application title
    titlePanel("Checkbox example"),
    fluidRow(
            column(3,checkboxGroupInput("example", label = strong("Species"),
                                        choices = levels(iris$Species),
                                        selected = levels(iris$Species)))),
    fluidRow(
            mainPanel(plotOutput('coolplot'),width = '40%'))


))



server <- shinyServer(function(input, output) {

    irisSubset <- reactive({
            validate(
                    need(input$example != "", 'Please choose at least one feature.')
            )
            filter(iris, Species %in% input$example)
    })

    output$coolplot<-renderPlot({
            gg <- ggplot(irisSubset(), aes(x = Species, y = Sepal.Length))
            gg <- gg + geom_boxplot()
            print(gg)
    })

})

# Run the application 
shinyApp(ui = ui, server = server)