3

同じ行に4つのinfoBox(またはvalueBox、あまり気にしません)を表示したいのですが、うまくいかないようです...

これは、Rstudio Web サイトの Shinydashbaord チュートリアルに基づいた、コードの簡易バージョンです (私の場合は infoBoxOutputs を使用していますが、ここでの書式設定は問題ではないと思います)。

ui <- dashboardPage(
  dashboardHeader(title = "Info boxes"),
  dashboardSidebar(),
  dashboardBody(
    # infoBoxes with fill=FALSE
    fluidRow(
      infoBox("1st", 10 * 2, icon = icon("credit-card")),
      infoBox("2nd", 10 * 2, icon = icon("credit-card")),
      infoBox("3rd", 10 * 2, icon = icon("credit-card")),
    )
  )
)

同じ行に 3 つの infoBox が表示されます。ただし、infoBox をもう 1 つ追加すると、新しい行に移動します。

ui <- dashboardPage(
  dashboardHeader(title = "Info boxes"),
  dashboardSidebar(),
  dashboardBody(
    # infoBoxes with fill=FALSE
    fluidRow(
      infoBox("1st", 10 * 2, icon = icon("credit-card")),
      infoBox("2nd", 10 * 2, icon = icon("credit-card")),
      infoBox("3rd", 10 * 2, icon = icon("credit-card")),
      infoBox("4th", 10 * 2, icon = icon("credit-card")),
    )
  )
)

列も使用してみました。ボックスは同じ行に表示されましたが、歪んでいました。

何か案は?

4

3 に答える 3

7

fluidRowfrom内shinyでは、最大列幅が 12 であることがわかっています。

infoxBox関数を見てみましょう:

infoBox(title, value = NULL, subtitle = NULL,
  icon = shiny::icon("bar-chart"), color = "aqua", width = 4,
  href = NULL, fill = FALSE)
}

width の設定は ですwidth = 4

希望する 4 つの infoBox を 1 行に配置するには、 を設定するだけですwidth = 3


すべての意図と目的の明示的な例:

library(shiny)
library(shinydashboard)

server <- function(input, output) {
}

ui <- fluidPage(
  fluidRow(
    infoBox("test", value=1, width=3),
    infoBox("test", value=2, width=3),
    infoBox("test", value=3, width=3),
    infoBox("test", value=4, width=3)
  )
)

shinyApp(ui = ui, server = server)

収量:

ここに画像の説明を入力

于 2015-12-28T13:30:20.093 に答える
3

どうやらこれは私が探していたものです:

server.R: で、幅 = 3 の値ボックスを設定します。

output$infoBox1 <- renderValueBox({..., valueBox(...,width = 3)})

UI.R: 次のように、valueBoxOutputs を含む 4 つの列を配置します。

column( 3,valueBoxOutput("infoBox1", width = 12))
于 2015-12-31T20:30:52.297 に答える