如何根据用户输入在 R Shiny 中呈现不同的绘图输出类型?

How to render different plot output types in R Shiny dependent of user input?

在 R Shiny 中,我想根据勾选的单选按钮呈现不同的绘图输出类型。这很容易实现,如下所示:create plots based on radio button selection R Shiny。现在进一步采用这种方法,如何使用不同的输出类型(例如 dygraphs 和 amCharts)来实现它?我想要实现的目标的尝试:

library(shiny)
library(dygraphs)
library(amCharts)

myData <- runif(100)
myData <- ts(runif(72,0,10), start=c(2009, 1), end=c(2014, 12), frequency=12) 
myData 

outType <- function(x,type){
  switch(type,
         A = renderPlot({ hist(x)}),
         B = renderDygraph({ barplot(x)}),
         C = amChartsOutput({ pie(x)}))
}

plotOut <- function(type,plotlabel,data){
  switch(type,
         A = plotOutput(plotlabel,data),
         B = dygraph(plotlabel,data),
         C = plotOutput(plotlabel,data))
}

runApp(list(
  ui = bootstrapPage(
    radioButtons("pType", "Choose plot type:",
                 list("A", "B", "C")),
    plotOut('A','plot',myData)
  ),

  server = function(input, output) {
    observe({
      type <<- input$pType
      output$plot <- outType(myData, input$pType)  
    })
  }
))

提前致谢

类似的东西。在 server:

output$plot <- renderPlot({
  validate(need(input$pType=="A", message=FALSE))
  hist(myData)
})
output$dygraph <- renderDygraph({
  validate(need(input$pType=="B", message=FALSE))
  barplot(myData)
})

ui中:

conditionalPanel('input.pType=="A"', plotOutput("plot"))
conditionalPanel('input.pType=="B"', dygraphOutput("dygraph"))

也许不需要条件面板,因为 plotOutput("plot") 不会渲染任何东西 pType 不是 A,而 dygraphOutput("dygraph") 不会渲染任何东西 pType 不是 B.