2016-03-31 8 views
1

Ich versuche, eine Shiny Dashboard-Seite zu erstellen, die Tabbed Pages mit verschiedenen Arten von Diagrammen haben, Benutzern erlauben, Einstellungen dynamisch zu ändern, usw. Beginnen mit dem Standard-Demo-Code von Shiny Armaturenbretter Seite, kann ich eine gestapelte Version der Seite (https://rstudio.github.io/shinydashboard/structure.html#tabbox) erhalten:Verwenden von Spalten zum Steuern von tabBox conten in Shiny Dashboard

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")) 
    } 
) 

Wenn ich Zeile 10 bis diese ändern:

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

ich die Überschrift und die boxplot aufgeteilt in Spalten zu erhalten, aber die tabBox wird nicht länger erweitert, um sie zu enthalten .

Gibt es eine Möglichkeit, den Inhalt des TabPanel zu steuern, um eine columnare Formatierung der Ausgabe zu ermöglichen?

Antwort

2

Wickeln Sie einfach Ihre Spalten in eine fluidRow oder fluidPage. Dann erhält die tabPanel die richtige Größe und streckt sich aus, um zu Ihren Spalten zu passen.

+0

Nun, das war einfach verrückt. Ich weiß nicht, warum ich das vorher nicht bemerkt habe. Vielen Dank! – KirkDCO