2016-04-01 2 views
1

Я пытаюсь создать панель selecInput внутри отдельной вкладки, и я не уверен, как это сделать. Внутри функции tabPanel() я попытался включить sidebarPanel() сразу после функции plotOutput(), однако sidebarPanel больше не на стороне, а вместо этого слева и перекрывает график гистограммы. Будет ли способ правильно внедрить эту боковую панель в эту конкретную вкладку или получить ту боковую панель в правой части графика? Спасибо, ниже код я использую:Блестящий: как встроить sidebarPanel внутри tabPanel?

mainPanel(
    tabsetPanel(
     tabPanel("Histogram",plotOutput("histogram")), 
     tabPanel("Scatter",plotOutput("scatter"), 
       sidebarPanel(
    selectInput("xaxis", label = "x axis", 
       choices = detectors, selected = detectors[1],width='200px',selectize=FALSE), 
    selectInput("yaxis", label = "y axis", 
       choices = detectors, selected = detectors[2],width='200px',selectize=FALSE), 
    selectInput("population1", label = "Population 1", 
       choices = files, selected = files[1],width='200px',selectize=FALSE), 
    selectInput("population2", label = "Population 2", 
       choices = files, selected = files[1],width='200px',selectize=FALSE), 
    selectInput("population3", label = "Population 3", 
       choices = files, selected = files[1],width='200px',selectize=FALSE) 
) 
), 
     tabPanel("Table", DT::dataTableOutput("table")) 
    ) 
) 
+0

Это очень трудно понять вывод только с частичным кодом. Лучше, если вы предоставите минимальный воспроизводимый пример, как для сервера, так и для интерфейса. – Molx

+0

Вы, кажется, не называли sideBarLayout() где угодно ... –

+0

sideBarLayout() был тем, что я искал. Просто, спасибо! –

ответ

2

ваша концепция права, но размещение кода неправильно. Пройдите следующий код, который сам объясняет.

library(shiny) 
ui <- fluidPage(


    titlePanel("Old Faithful Geyser Data"), 

    tabsetPanel(    
      tabPanel("Tab 1", h1("First tab")), 
      tabPanel("Tab2", 
      sidebarLayout(
       sidebarPanel(width = 3, sliderInput("bins", 
                "Number of bins:", 
                min = 1, 
                max = 50, 
                value = 30) 
       ), 

       mainPanel(
       plotOutput("distPlot") 
      ) 
      ) 
     ) 
    ) 
) 
server <- 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)*