проблема с высотой основной панели на блестящей приборной панели

Это продолжение моего предыдущего вопроса. Теперь я не могу увеличить высоту моей основной панели.

Это мой код ниже

library(shiny)
library(shinydashboard)
library(shinyBS)
library(DT)

ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(
    sidebarPanel(
      textInput("text", "Enter Id:"),
      box(width = 1, background  = 'purple'),
      actionButton("Ok", "Press Ok",style='padding:8px; font-size:100%')
    )

  ),
  dashboardBody(

    mainPanel(width = 12, 

      tabsetPanel(

        tabPanel("About", value=1, h6("The objective is to test width of ShinyApp in tabPanel design", br(),
                                      br(),

                                      "Distribution Prototype"

                                     )
                 ),


        tabPanel("Data", value=2,

                 fluidRow(

                   valueBoxOutput("vbox1", width = 2),
                   valueBoxOutput("vbox2", width = 2),
                   valueBoxOutput("vbox3", width = 2),
                   valueBoxOutput("vbox4", width = 2),
                   valueBoxOutput("vbox5", width = 2),
                   valueBoxOutput("vbox6", width = 2)


                 ),

                 fluidRow(

                   column(width = 4,  box(title = "Iris", width = NULL, solidHeader = FALSE, dataTableOutput("dat1"))),
                   column(width = 4,  box(title = "MT Cars", width = NULL, solidHeader = FALSE, dataTableOutput("dat2"))),
                   column(width = 4,  box(title = "Old Faithful Gyser", width = NULL, solidHeader = FALSE, dataTableOutput("dat3")))),

                 fluidRow(


                   column(width = 4,  box(title = "Plot1", width = NULL, solidHeader = FALSE, plotOutput("plot1", height = "600px"))),
                   column(width = 4,  box(title = "Plot2", width = NULL, solidHeader = FALSE, plotOutput("plot2", height = "600px"))),
                   column(width = 4,  box(title = "Plot3", width = NULL, solidHeader = FALSE, plotOutput("plot3", height = "600px")))


                 )

        )
      )
    )
  ))

server <- function(input, output) {

  output$vbox1 <- renderValueBox({ valueBox( "One","Yes",icon = icon("stethoscope"))})
  output$vbox2 <- renderValueBox({ valueBox( "Two","Yes",icon = icon("stethoscope"))})
  output$vbox3 <- renderValueBox({ valueBox( "Three","Yes",icon = icon("stethoscope"))})
  output$vbox4 <- renderValueBox({ valueBox( "Four","Yes",icon = icon("stethoscope"))})
  output$vbox5 <- renderValueBox({ valueBox( "Five","Yes",icon = icon("stethoscope"))})
  output$vbox6 <- renderValueBox({ valueBox( "Six","Yes",icon = icon("stethoscope"))})

  output$dat1 <- renderDataTable({datatable(iris)})
  output$dat2 <- renderDataTable({datatable(mtcars,extensions = 'Responsive' )})
  output$dat3 <- renderDataTable({datatable(faithful,rownames = FALSE, options = list(autoWidth = TRUE)  )})

}

shinyApp(ui, server)

Графики выходят за пределы пространства макета по умолчанию, и я не нахожу в mainPanel() никаких вариантов увеличения высоты. Я попытался установить значение высоты в mainPanel(), как это mainPanel(width = 12, height, 20 ....), и это не сработало. Любое предложение очень ценится.

+ Проблема с высотой главной панели

--------- Обновлено -------------

Не уверен, что это поможет, это не проблема, если я не использую mainpanel ()

library(shiny)
library(shinydashboard)
library(DT)

ui <- dashboardPage(
  dashboardHeader(title = "Dynamic boxes"),


  dashboardSidebar(
    conditionalPanel(condition="input.tabselected==3",
                     textInput("text", "Enter Id:"),
                     box(width = 1, background  = 'purple'),
                     actionButton("Ok", "Press Ok",style='padding:8px; font-size:100%')
    )
  ),
  dashboardBody(
    fluidRow(

      valueBoxOutput("vbox1", width = 2),
      valueBoxOutput("vbox2", width = 2),
      valueBoxOutput("vbox3", width = 2),
      valueBoxOutput("vbox4", width = 2),
      valueBoxOutput("vbox5", width = 2),
      valueBoxOutput("vbox6", width = 2)


    ),

    fluidRow(

      column(width = 4,  box(title = "Iris", width = NULL, solidHeader = FALSE, dataTableOutput("dat1"))),

      column(width = 4,  box(title = "MT Cars", width = NULL, solidHeader = FALSE, dataTableOutput("dat2"))),

      column(width = 4,  box(title = "Old Faithful Gyser", width = NULL, solidHeader = FALSE, dataTableOutput("dat3")))


  ),

  fluidRow(


    column(width = 4,  box(title = "Plot1 ", width = NULL, solidHeader = FALSE, plotOutput("plot1", height = "600px"))),
    column(width = 4,  box(title = "Plot2", width = NULL, solidHeader = FALSE, plotOutput("plot2", height = "600px"))),
    column(width = 4,  box(title = "Plot3", width = NULL, solidHeader = FALSE, plotOutput("plot3", height = "600px")))


  )



  )
  )


server <- function(input, output) {

  output$vbox1 <- renderValueBox({ valueBox( "One","Yes",icon = icon("stethoscope"))})
  output$vbox2 <- renderValueBox({ valueBox( "Two","Yes",icon = icon("stethoscope"))})
  output$vbox3 <- renderValueBox({ valueBox( "Three","Yes",icon = icon("stethoscope"))})
  output$vbox4 <- renderValueBox({ valueBox( "Four","Yes",icon = icon("stethoscope"))})
  output$vbox5 <- renderValueBox({ valueBox( "Five","Yes",icon = icon("stethoscope"))})
  output$vbox6 <- renderValueBox({ valueBox( "Six","Yes",icon = icon("stethoscope"))})

  output$dat1 <- renderDataTable({datatable(iris)})
  output$dat2 <- renderDataTable({datatable(mtcars,extensions = 'Responsive' )})
  output$dat3 <- renderDataTable({datatable(faithful,rownames = FALSE, options = list(autoWidth = TRUE)  )})
  #output$dat4 <- renderDataTable({datatable(data.frame(HairEyeColor),extensions = 'Responsive' )})
}

shinyApp(ui, server)

person Sundown Brownbear    schedule 16.09.2017    source источник
comment
Вы жестко запрограммировали высоту ваших участков на 600px   -  person Kevin Arseneau    schedule 17.09.2017
comment
@ kevin.arseneau, это не имеет значения.   -  person Sundown Brownbear    schedule 17.09.2017


Ответы (1)


Вы используете не функции из shinydashboard, а стандартный shiny пакет, и вам нужно заключить свой tabBox в fluidRow.

library(shiny)
library(shinydashboard)
library(shinyBS)
library(DT)

ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(
    sidebarPanel(
      textInput("text", "Enter Id:"),
      box(width = 1, background  = 'purple'),
      actionButton("Ok", "Press Ok",style='padding:8px; font-size:100%')
    )

  ),
  dashboardBody(

              fluidRow(
              tabBox(width = 12, height = NULL,

                tabPanel("About", value=1, h6("The objective is to test width of ShinyApp in tabPanel design", br(),
                                              br(),

                                              "Distribution Prototype"

                )
                ),


                tabPanel("Data", value=2,

                         fluidRow(

                           valueBoxOutput("vbox1", width = 2),
                           valueBoxOutput("vbox2", width = 2),
                           valueBoxOutput("vbox3", width = 2),
                           valueBoxOutput("vbox4", width = 2),
                           valueBoxOutput("vbox5", width = 2),
                           valueBoxOutput("vbox6", width = 2)


                         ),

                         fluidRow(

                           column(width = 4,  box(title = "Iris", width = NULL, solidHeader = FALSE, dataTableOutput("dat1"))),
                           column(width = 4,  box(title = "MT Cars", width = NULL, solidHeader = FALSE, dataTableOutput("dat2"))),
                           column(width = 4,  box(title = "Old Faithful Gyser", width = NULL, solidHeader = FALSE, dataTableOutput("dat3")))),

                         fluidRow(


                           column(width = 4,  box(title = "Plot1", width = NULL, solidHeader = FALSE, plotOutput("plot1"))),
                           column(width = 4,  box(title = "Plot2", width = NULL, solidHeader = FALSE, plotOutput("plot2"))),
                           column(width = 4,  box(title = "Plot3", width = NULL, solidHeader = FALSE, plotOutput("plot3")))


                         )

                )
              )
    )
  ))

server <- function(input, output) {

  output$vbox1 <- renderValueBox({ valueBox( "One","Yes",icon = icon("stethoscope"))})
  output$vbox2 <- renderValueBox({ valueBox( "Two","Yes",icon = icon("stethoscope"))})
  output$vbox3 <- renderValueBox({ valueBox( "Three","Yes",icon = icon("stethoscope"))})
  output$vbox4 <- renderValueBox({ valueBox( "Four","Yes",icon = icon("stethoscope"))})
  output$vbox5 <- renderValueBox({ valueBox( "Five","Yes",icon = icon("stethoscope"))})
  output$vbox6 <- renderValueBox({ valueBox( "Six","Yes",icon = icon("stethoscope"))})

  output$dat1 <- renderDataTable({datatable(iris)})
  output$dat2 <- renderDataTable({datatable(mtcars,extensions = 'Responsive' )})
  output$dat3 <- renderDataTable({datatable(faithful,rownames = FALSE, options = list(autoWidth = TRUE)  )})

}

shinyApp(ui, server)
person Kevin Arseneau    schedule 17.09.2017
comment
Спасибо, Кевин, мне нужно поработать, в основном разбираясь в функциях приборной панели. - person Sundown Brownbear; 17.09.2017
comment
@SundownBrownbear, не беспокойтесь, я уверен, что усилия будут вознаграждены. - person Kevin Arseneau; 17.09.2017