根据单选按钮选择R Shiny创建绘图

时间:2014-09-02 22:55:57

标签: r plot shiny

我正在尝试创建Shiny应用。用户界面UI.R看起来很好,但我遇到了server.R的问题。基本上我想要一个不同的绘图输出,具体取决于用户选择的radio选项。

用户可以选择ABC选项。我想绘制直方图,如果用户选择选项A,条形图为B,饼图为选项C,但我不知道如何编码条件?它是否像if-else声明?我已经挣扎了几个小时!这是我的代码示例:

output$plots <- renderPlot({    
   if selection == 'A'
      # plot histogram
   if selection == 'B'
      # plot bar chart
   if selection == 'C'
      # plot pie chart
})

谢谢!

1 个答案:

答案 0 :(得分:14)

您可以使用开关根据选择确定行为:

library(shiny)
myData <- runif(100)
plotType <- function(x, type) {
  switch(type,
         A = hist(x),
         B = barplot(x),
         C = pie(x))
}
runApp(list(
  ui = bootstrapPage(
    radioButtons("pType", "Choose plot type:",
                 list("A", "B", "C")),
    plotOutput('plot')
  ),
  server = function(input, output) {
    output$plot <- renderPlot({ 
       plotType(myData, input$pType)
    })
  }
))