我需要为学校项目准备一个闪亮的应用程序。 这是它看起来像什么的链接
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,它获取奖牌矢量,开始年份,结束年份,国家并返回图形的图形。
答案 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)