shinydashboard 的組成

使用 shinydashboard 建立儀表板

Png Kee Seng

Researcher

什麼是 shinydashboard?

  • shinydashboard 其實就是一個帶有儀表板輸出的 shinyApp
    • 需要 UI
    • 需要 server
  • 還需要用 shinyApp() 把 UI 和 server 串起來
  • 注意 UI 是由 dashboardPage() 定義,而不是 fluidPage()
ui <- dashboardPage(header, sidebar, body)
server <- function(input, output){
...
}
shinyApp(ui, server)
使用 shinydashboard 建立儀表板

使用者介面(UI)

  • UI 現在包含更多部分
    1. 標頭(header)
    2. 側邊欄(side bar)
    3. 主體(body)
  • shinydashboard 的 UI 透過 dashboardPage() 組合
header <- dashboardHeader(...)
sidebar <- dashboardSidebar(...)
body <- dashboardBody(...)
# a shinydashboard ui
ui <- dashboardPage(header, sidebar, body)
使用 shinydashboard 建立儀表板

UI 預覽

shinydashboard UI 各元件示意。

使用 shinydashboard 建立儀表板

再次回到餐廳的比喻

  • UI 就像餐廳
  • server 就像服務生
  • 尤其是,UI 還能再拆成更小的元件

shinyApp 的使用者就像餐廳的顧客。

服務生把點單交給廚房,並把餐點端來。

1 圖片來源:Freepik 的 macrovector
使用 shinydashboard 建立儀表板

把 UI 想成一套多道料理

  • 在 UI 中:
    • 標頭像招牌
    • 側邊欄像菜單
    • 輸出與輸入像菜餚與點單
  • 一次呈現一道菜
  • 每道菜都有指示
  • 每道菜就像一個 shinyApp
    • 可以有多組輸入與輸出

每道菜就像一個具有多個輸入與輸出的 shinyApp。

1 圖片來源:Freepik 的 brgfx
使用 shinydashboard 建立儀表板

一個空白的 shinydashboard

library(shinydashboard)
library(shiny)
header <- dashboardHeader(title = "My first dashboard")
sidebar <- dashboardSidebar()
body <- dashboardBody()
ui <- dashboardPage(header, sidebar, body)
使用 shinydashboard 建立儀表板

渲染 shinydashboard

header <- dashboardHeader(title = "My first dashboard")

sidebar <- dashboardSidebar()

body <- dashboardBody()

ui <- dashboardPage(header, sidebar, body)

server <- function(input, output) { }
shinyApp(ui, server)
使用 shinydashboard 建立儀表板

渲染 shinydashboard

一個空白的 shinydashboard

使用 shinydashboard 建立儀表板

一起來練習吧!

使用 shinydashboard 建立儀表板

Preparing Video For Download...