使用 shinydashboard 构建仪表板
Png Kee Seng
Researcher
dashboardBody() 定义,惯例存为 bodybody <- dashboardBody(...)

fluidRow() 添加行box() 添加方框
body <- dashboardBody(fluidRow(box("第1行,第1框"), box("第1行,第2框")), fluidRow(box("第2行,第1框"), box("第2行,第2框")))

body <- dashboardBody( fluidRow(box("第1行,第1框",plotOutput('plot')),box("第1行,第2框")), fluidRow(box("第2行,第1框"), box("第2行,第2框",selectInput("select", "选择队伍编号:", choices = c(1,2)))))
widthbox()
body <- dashboardBody(
fluidRow(box("第1行,第1框"),
box("第1行,第2框"),
box("第1行,第3框")),
fluidRow(box("第2行,第1框"),
box("第2行,第2框"))
)
body <- dashboardBody(
fluidRow(box("第1行,第1框", width = 3),
box("第1行,第2框", width = 5),
box("第1行,第3框", width = 4)),
fluidRow(box("第2行,第1框"),
box("第2行,第2框"))
)
valueBox()infoBox()
body <- dashboardBody( fluidRow(valueBox(value = 3, subtitle = "红牌总数", icon = icon("user"), color = "red"),infoBox(value = 158, title = "进球总数", icon = icon("futbol")) ))
valueBox() 和 infoBox() 的变体:
valueBoxOutput() 与 infoBoxOutput()renderValueBox() 与 renderInfoBox()valueBox() 与 infoBox()
body <- dashboardBody(
fluidRow(valueBoxOutput(outputId = "valuebox1"),
infoBoxOutput(outputId = "infobox1")
))
server <- function(input, output){
output$valuebox1 <- renderValueBox(
valueBox(3, "红牌总数",
icon = icon("user"), color = "red"))
output$infobox1 <- renderInfoBox(
infoBox(158,
title = "进球总数",
icon = icon("futbol")))
}
plotOutput():renderPlot():server() 中ggplot() 对象valueBoxOutput():renderValueBox():server() 中valueBox() 对象tabItems()tabItem() 定义menuItem()-tabItem() 的标签必须匹配
sidebar <- dashboardSidebar( sidebarMenu( id = "pages",menuItem("Many charts", tabName = "charts", icon = icon("chart-line"), badgeLabel = "New content!", badgeColor = "green"),menuItem("Statistics", icon = icon("file-excel"), tabName = "statistics", badgeLabel = "urgent", badgeColor = "red") ))body <- dashboardBody( tabItems(tabItem("charts", "此处显示图表。" ), tabItem("statistics", "此处显示统计。" )))
tabsetPanel() 定义一组选项卡tabPanel() 定义tabItems()/tabItem() 混淆
body <- dashboardBody(tabsetPanel(tabPanel("Distributions", box(plotOutput("dist"))), tabPanel("Statistics", dateInput("matchdate", "输入比赛日期:", value = "2022-11-20"), valueBoxOutput("red"), valueBoxOutput("yellow")), tabPanel("Data", "此处显示数据。", tableOutput("data"))))server <- function(input, output){ output$red <- renderValueBox(valueBox(0, "红牌")) output$yellow <- renderValueBox(valueBox(6, "黄牌")) }
使用 shinydashboard 构建仪表板