R Shiny - Несколько ValueBoxes в 1 строке - PullRequest
1 голос
/ 20 июня 2019

Я довольно новичок в R Shiny, и я хотел бы создать 1 строку с 8 ValueBoxes.Я использовал код ниже, но он не показывает все поля в одной строке.Я попытался установить ширину 1,5 (учитывая ширину начальной загрузки 12, разделенную на 8 блоков), но, похоже, он не принимает десятичные значения.Есть идеи?

  fluidRow( 
    valueBoxOutput("box1"),
    valueBoxOutput("box2"),
    valueBoxOutput("box3"),
    valueBoxOutput("box4"),
    valueBoxOutput("box5"),
    valueBoxOutput("box6"),
    valueBoxOutput("box7"),
    valueBoxOutput("box8")
  )

Ответы [ 2 ]

1 голос
/ 20 июня 2019

Вы можете использовать splitLayout:

library(shinydashboard)

shinyApp(
  ui = fluidPage(
    splitLayout(
      valueBoxOutput("box1"),
      valueBoxOutput("box2"),
      valueBoxOutput("box3"),
      valueBoxOutput("box4"),
      valueBoxOutput("box5"),
      valueBoxOutput("box6"),
      valueBoxOutput("box7"),
      valueBoxOutput("box8")
    )
  ),
  server = function(input, output){
    output$box1 <- renderInfoBox({
      infoBox(
        "box1",
        "A",
        icon = icon("credit-card")
      )
    })
    output$box2 <- renderInfoBox({
      infoBox(
        "box2",
        "B",
        icon = icon("credit-card")
      )
    })
    output$box3 <- renderInfoBox({
      infoBox(
        "box3",
        "C",
        icon = icon("credit-card")
      )
    })
    output$box4 <- renderInfoBox({
      infoBox(
        "box4",
        "D",
        icon = icon("credit-card")
      )
    })
    output$box5 <- renderInfoBox({
      infoBox(
        "box5",
        "E",
        icon = icon("credit-card")
      )
    })
    output$box6 <- renderInfoBox({
      infoBox(
        "box6",
        "F",
        icon = icon("credit-card")
      )
    })
    output$box7 <- renderInfoBox({
      infoBox(
        "box7",
        "G",
        icon = icon("credit-card")
      )
    })
    output$box8 <- renderInfoBox({
      infoBox(
        "box8",
        "H",
        icon = icon("credit-card")
      )
    })
  }
)
1 голос
/ 20 июня 2019

Вы можете использовать блочную сетку, поместив каждый объект в отдельный столбец. Попробуйте:

 fluidRow( 
    column(1, valueBoxOutput("box1")),
    column(1, valueBoxOutput("box2")),
    column(1, valueBoxOutput("box3")),
    column(1, valueBoxOutput("box4")),
    column(1, valueBoxOutput("box5")),
    column(1, valueBoxOutput("box6")),
    column(1, valueBoxOutput("box7")),
    column(1, valueBoxOutput("box8"))
  )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...