2016-03-31 2 views
1

Я пытаюсь создать страницу с блестящей панелью, в которой будут отображаться страницы с разными типами графиков, что позволяет пользователям динамически изменять настройки и т. Д. Начиная со стандартного демонстрационного кода с Блестящая страница Сводки, я могу получить пакетную версию страницы (https://rstudio.github.io/shinydashboard/structure.html#tabbox):Использование столбцов для управления tabBox conten в панели инструментов Shiny

library(shiny) 
    library(shinydashboard) 

    body <- dashboardBody(
    fluidRow(
     tabBox(
      title = "First tabBox", 
      # The id lets us use input$tabset1 on the server to find the current tab 
      id = "tabset1", 
      tabPanel("Tab1", "First tab content", plotOutput('test')), 
      tabPanel("Tab2", "Tab content 2") 
     ), 
     tabBox(
      side = "right", 
      selected = "Tab3", 
      tabPanel("Tab1", "Tab content 1"), 
      tabPanel("Tab2", "Tab content 2"), 
      tabPanel("Tab3", "Note that when side=right, the tab order is reversed.") 
     ) 
    ), 
    fluidRow(
     tabBox(
      # Title can include an icon 
      title = tagList(shiny::icon("gear"), "tabBox status"), 
      tabPanel("Tab1", 
        "Currently selected tab from first box:", 
        verbatimTextOutput("tabset1Selected") 
      ), 
      tabPanel("Tab2", "Tab content 2") 
     ) 
    ) 
) 

    shinyApp(
    ui = dashboardPage(
     dashboardHeader(title = "tabBoxes"), 
     dashboardSidebar(), 
     body 
    ), 
    server = function(input, output) { 
     # The currently selected tab from the first box 
     output$tabset1Selected <- renderText({ 
      input$tabset1 
     }) 
     output$test = renderPlot(
      boxplot(len ~ dose, data = ToothGrowth, 
      boxwex = 0.25, at = 1:3 - 0.2, 
      subset = supp == "VC", col = "yellow", 
      main = "Guinea Pigs' Tooth Growth", 
      xlab = "Vitamin C dose mg", 
      ylab = "tooth length", 
      xlim = c(0.5, 3.5), ylim = c(0, 35), yaxs = "i")) 
    } 
) 

Если я изменить линию 10 к этому:

tabPanel("Tab1", column(4,"First tab content"), 
       column(8, plotOutput('test')) 
       ), 

я получаю заголовок и разделение boxplot на столбцы, но tabBox больше не расширяется, чтобы содержать их ,

Есть ли способ управлять содержимым tabPanel, чтобы разрешить форматирование вывода столбца?

ответ

2

Просто оберните свои колонны внутри fluidRow или fluidPage. Затем tabPanel получает нужный размер и растягивается в соответствии с вашими столбцами.

+0

Ну, это было просто безумно. Я не знаю, почему я этого раньше не осознавал. Спасибо! – KirkDCO

Смежные вопросы