8

Using Shiny, does anyone happen to know how to create a UI with one main panel (middle) and two side panels (left and right) with each one has their own horizontal and vertical scroll bar?

M--
  • 18,939
  • 7
  • 44
  • 76
webbeing
  • 109
  • 1
  • 6

1 Answers1

6

You can use fluidRow and column. Here is an example. You can adjust the column width, as long as the total adds to 12.

library(shiny)

ui <- shinyUI(fluidPage(

   titlePanel("Old Faithful Geyser Data"),

   fluidRow(
     column(2,
            sliderInput("bins",
                        "Number of bins:",
                        min = 1,
                        max = 50,
                        value = 30),
            style="overflow-x: scroll; overflow-y: scroll"),
     column(8,
            plotOutput("distPlot")),
     column(2,
            textInput("test", "Test"),
            style="overflow-x: scroll; overflow-y: scroll")
   )
))

server <- shinyServer(function(input, output) {

   output$distPlot <- renderPlot({
      x    <- faithful[, 2] 
      bins <- seq(min(x), max(x), length.out = input$bins + 1)

      hist(x, breaks = bins, col = 'darkgray', border = 'white')
   })
})

shinyApp(ui = ui, server = server)
Xiongbing Jin
  • 9,945
  • 3
  • 36
  • 34