I want to make a reactive display, that displays a different number of plots depending on which value of the input selector is chosen. In the case of the mtcars dataset, let's say I want to let the user choose beetween cutting by Nr. of Gears or Nr. of Carburatos for the plots to be produced.
Looking at unique(mtcars$gear)
we see it has 4 3 5
so 3 possible values, while unique(mtcars$carb)
has 4 1 2 3 6 8
so 6 possible values. I therefore want to produce 6 separate plots when Nr. of Carburators
is selected and only 3 plots when Nr. of Gears
is selected. I've played with conditionalPanel
but it invariably blows up after I switch between selectors once or twice. Help?
Shiny UI:
library(shiny)
library(googleVis)
shinyUI(bootstrapPage(
selectInput(inputId = "choosevar",
label = "Choose Cut Variable:",
choices = c("Nr. of Gears"="gear",
"Nr. of Carburators"="carb")),
htmlOutput('mydisplay') ##Obviously I'll want more than one of these...
# conditionalPanel(...)
))
Shiny Server:
shinyServer(function(input, output) {
#Toy output example for one out of 3 unique gear values:
output$mydisplay <- renderGvis({
gvisColumnChart(
mtcars[mtcars$gear==4,], xvar='hp', yvar='mpg'
)
})
})