Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

One main panel and 2 side panels

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?

like image 628
webbeing Avatar asked Jun 12 '16 17:06

webbeing


1 Answers

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)
like image 160
Xiongbing Jin Avatar answered Oct 07 '22 07:10

Xiongbing Jin