首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ShinyDashboard --在同一行上显示超过3个infoBoxes

ShinyDashboard --在同一行上显示超过3个infoBoxes
EN

Stack Overflow用户
提问于 2015-12-28 12:42:20
回答 3查看 6.1K关注 0票数 3

我想在同一行中显示4 infoBoxes (或valueBoxes,我并不在乎),但它似乎不起作用.

这是基于Rstudio上的shinydashbaord教程(我的教程使用infoBoxOutputs,但我想这里的格式并不重要)的代码的有效简化版本:

代码语言:javascript
复制
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 infoBoxes。然而,一旦我再添加一个infoBox,它将移动到一个新行:

代码语言:javascript
复制
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")),
    )
  )
)

我还尝试使用列--然后在同一行上显示这些框,但是被扭曲了。

有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-31 20:30:52

很明显这就是我要找的:

在server.R:设置宽度=3的值框:

代码语言:javascript
复制
output$infoBox1 <- renderValueBox({..., valueBox(...,width = 3)})

在UI.R: put 4列与valueBoxOutputs,以这种方式:

代码语言:javascript
复制
column( 3,valueBoxOutput("infoBox1", width = 12))
票数 4
EN

Stack Overflow用户

发布于 2015-12-28 13:30:20

在来自fluidRowshiny中,我们知道它的最大列宽为12。

查看一下infoxBox函数:

代码语言:javascript
复制
infoBox(title, value = NULL, subtitle = NULL,
  icon = shiny::icon("bar-chart"), color = "aqua", width = 4,
  href = NULL, fill = FALSE)
}

我们看到宽度的设置是width = 4

要想在一行上安装您想要的4 infoBoxes,只需设置width = 3

用于所有意图和目的的明确示例:

代码语言:javascript
复制
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)

屈服:

票数 7
EN

Stack Overflow用户

发布于 2017-11-08 14:22:13

代码语言:javascript
复制
library(shiny)
library(shinydashboard)

server <- function(input, output) {
}

ui <- fluidPage(
  fluidPage(                      ##Change for fluidPage
     mainPanel(width = 12,        ##HERE 
      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)

这似乎对我有用。我的应用程序也有同样的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34493754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档