-4

How to create dynamic plots based on checkbox inputs, number of plots should be increased and decreased with respect to the names selected checkbox.

Dinesh
  • 56
  • 5
  • 1
    Please read [How to make a great R reproducible example?](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) and edit your post according it. Now this question is too broad. – pogibas Jul 12 '18 at 09:35
  • Please provide the code sniping to provide you the answer – Sovik Gupta Jul 12 '18 at 09:39
  • The above provided link is related to R and i'm looking for suggestions for R shiny. Can you provide any similar topics related to R shiny ??? – Dinesh Jul 12 '18 at 09:44

1 Answers1

5

You can use library(gridExtra) and plot several plots depends (grid.arrange) on how many checkbox you actvated.

library(shiny)

# Define UI for application
ui <- fluidPage(
  checkboxGroupInput("variable", "Variables to show:",
                     c("Cylinders" = "cyl",
                       "Transmission" = "am",
                       "Gears" = "gear")),
  mainPanel(plotOutput("distPlot"))
)


# Define server logic
server <- function(input, output, session) {
  require(gridExtra)
  require(ggplot2)

  output$distPlot <- renderPlot({
    if (length(input$variable) == 0) {
      ggplot(data.frame())
    } else {
      gl <- lapply(input$variable, 
                   function(x) ggplot(mtcars, aes(mtcars[, x])) +
                     geom_bar() +
                     xlab(x)) 
      grid.arrange(grobs = gl, nrow = 1)
    }
  })
}

# Run the application 
shinyApp(ui = ui, server = server)
Artem
  • 3,304
  • 3
  • 18
  • 41