You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在RMarkdown Flexidashboard中将四个valueBox放置在同一行

解决方法

你可以通过以下两种方式实现四个valueBox同排展示:

方法1:使用flexdashboard原生列布局(推荐)

flexdashboard默认会让每个三级标题(###)对应的内容占满整行,你只需要给四个valueBox分别分配宽度为25%的水平列即可,修改后代码如下:

Summary {data-orientation=columns} 
===========================================

Column {data-width=25}
-----------------------------------------------------------------------
### BOX1
```{r,eval=TRUE}
valueBox(52,
         icon = "fa-area-chart",color="info")

Column {data-width=25}

BOX2

valueBox(53,
         icon = "fa-area-chart")

Column {data-width=25}

BOX3

valueBox(54, 
         icon = "fa-area-chart")

Column {data-width=25}

BOX4

valueBox(55, 
         icon = "fa-area-chart")
原理:页面声明`data-orientation=columns`后,所有标记为`Column {data-width=xxx}`的块会按水平方向排列,四个列宽度总和为100,刚好占满一整行,每个valueBox会自动适配所在列的宽度。

#### 方法2:在R代码中使用shiny布局函数
如果你不想拆分多个代码块,也可以直接在同一个代码块中用`fluidRow`和`column`函数实现布局:
```r
Summary
===========================================

### 指标卡片组
```{r,eval=TRUE}
library(shiny)
fluidRow(
  column(width = 3, valueBox(52, icon = "fa-area-chart", color = "info")),
  column(width = 3, valueBox(53, icon = "fa-area-chart")),
  column(width = 3, valueBox(54, icon = "fa-area-chart")),
  column(width = 3, valueBox(55, icon = "fa-area-chart"))
)
注:`column`的width参数总取值为12,这里每个占3,刚好四个平分一行。

内容的提问来源于stack exchange,提问作者silent_hunter
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 20:39:00