R блестящий макет борьбы - PullRequest
       16

R блестящий макет борьбы

0 голосов
/ 11 октября 2018

Я перелистывал страницы и страницы результатов, но не могу заставить это работать.Ниже приведена грубая диаграмма, показывающая, как я хочу, чтобы моя приборная панель выглядела.Приведенный ниже код показывает пару вещей, которые я пробовал, надеюсь, что-то очевидное мне не хватает.Я подхожу близко, но я мог бы сделать что-то вроде столбца жидкости или чего-то еще, так как таблица 1 длиннее, чем 1-й вывод ggplot

R Shiny Layout

dashboardBody(
                      column(width = 2,
                             fluidRow(tableOutput('ptable')),
                             fluidRow(tableOutput('ptable'))),
                      column(width = 10,
                             fluidRow(plotOutput("Calplot")),
                             fluidRow(plotOutput("CalHeat")))

fluidRow(
                          column(width = 2, tableOutput('ptable')),
                          column(width = 10, plotOutput("Calplot"))
                        ),
                      fluidRow(
                          column(width = 2, tableOutput('ctable')),
                          column(width = 10, plotOutput("CalHeat"))
                          )

1 Ответ

0 голосов
/ 11 октября 2018

Может быть, вы хотите попробовать макет на основе столбцов.Очень хорошее объяснение можно найти здесь .Этот пример объединяет column с box, где вы можете определить ширину для каждого объекта.
Я также переключился на DT таблицы, так как я нахожу их более мощными и простыми в стиле, например options = list(scrollX = TRUE, pageLength = 12), который хорошо отображает таблицу и добавляет к ней скроллер.Если вы удалите эту опцию, таблица и график будут перекрываться.

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

ui = dashboardPage(
  dashboardHeader(),
  dashboardSidebar(
    sliderInput("obs", "Number of observations:", min = 0, max = 1000, value = 500),  
    sliderInput("obs1", "Number of observations:", min = 0, max = 1000, value = 500),  
    sliderInput("obs2", "Number of observations:", min = 0, max = 1000, value = 500)  
  ),
  dashboardBody(
    column(width = 12,
           box(width = 3, DT::dataTableOutput('table1'),
               DT::dataTableOutput('table2')),

           box(width = 9, plotOutput("plot2"),
               plotOutput("plot1"))
    )
  )
)

server = function(input, output) { 
  output$table1 <- DT::renderDataTable({
    datatable(mtcars, caption = "table1",
              options = list(scrollX = TRUE,
              pageLength = 12))
  }) 
  output$table2 <- DT::renderDataTable({
    datatable(mtcars[,1:3], caption = "table2")
  })  

  output$plot1 <- renderPlot({
    plot(mtcars$mpg, mtcars$cyl, main = "plot1")
  })  
  output$plot2 <- renderPlot( {
    plot(mtcars$mpg, mtcars$cyl, main = "plot2")
  })  

}

shinyApp(ui, server)

enter image description here

...