Interaktiva element i en shinydashboard

Bygga dashboards med shinydashboard

Png Kee Seng

Researcher

Scenario

  • Vi arbetar på ett researrangörsföretag i London.

  • Turisterna behöver ett ställe att bo på.

  • Vad kan vi göra för att hjälpa dem?

En grafisk bild av London

  • Antal annonser inom ett prisintervall
  • Andelen privata rum
  • Genomsnittspriser
  • Diagram
  • En datatabell
  • En karta över London
1 Bild av Freepik
Bygga dashboards med shinydashboard

Skiss av dashboarden

En grov skiss av dashboarden.

Bygga dashboards med shinydashboard

Bygga dashboarden: Sätt upp grundstrukturen

Skapa grundstrukturen genom att sätta upp en tom shinydashboard med önskad titel och sidopanelsknappar.

header <- dashboardHeader(
  title = "Home rental listings")
sidebar <- dashboardSidebar()
body <- dashboardBody()
ui <- dashboardPage(header, 
                    sidebar, 
                    body)
server <- function(input, output) {}
shinyApp(ui, server)
Bygga dashboards med shinydashboard

Bygga dashboarden: Lägg till ValueBox

Lägger till valueboxar som en del av grundstrukturen.

I body:

fluidRow(
    valueBoxOutput(outputId = "count"),
    valueBoxOutput(outputId = "prop"),
    valueBoxOutput(outputId = "avg"))

I server:

output$count <- renderValueBox({
    valueBox(..., icon = ...)})
output$prop <- renderValueBox(...)
...
Bygga dashboards med shinydashboard

Bygga dashboarden: Lägg till kontroller

Lägger till inmatningskontroller för användarna.

I body:

box(
    side = "right", ...,
    sliderInput(inputId = "range",
        label = "Select price range:",
        min = 0,
        max = 25000,
        value = c(0,25000))
        ))

Uppdatera server med input$range[1] och input$range[2]

Bygga dashboards med shinydashboard

Bygga dashboarden: Lägg till interaktiva diagram

Lägger till interaktiva diagram med plotly.

I body:

plotlyOutput("plots", 
    height = 500, 
    width = 600)

I server:

output$plots <- renderPlotly({
      ...
  })
Bygga dashboards med shinydashboard

Bygga dashboarden: Lägg till ytterligare ett diagram

Lägger till ett andra diagram på samma dashboardsida, åtkomligt via en rullgardinsmeny.

I body:

selectInput(inputId = "select", 
    label = "Select group:", 
    choices = c("Neighbourhood", 
            "Room Type"))

I server:

output$plots <- renderPlotly({
    if (input$select == ...){plot1}
    else if(input$select == ...){plot2}
  })
Bygga dashboards med shinydashboard

Bygga dashboarden: Lägg till beskrivning och flikar

Lägger till förklarande text i dashboarden.

I body:

box(side = "right", ...,
    title = "Welcome to London!", 
    "...")

Uppdatera i body:

tabBox(id = "tabset", ...,
    tabPanel("Charts", ...),
    tabPanel("Data table", ...)
Bygga dashboards med shinydashboard

Bygga dashboarden: Lägg till interaktiva tabeller

Lägger till interaktiva tabeller med dataTable-funktioner.

Vi kan använda shiny-funktioner.

I body:

dataTableOutput("table")

I server:

output$table <- 
    renderDataTable(listings)
Bygga dashboards med shinydashboard

Bygga dashboarden: Lägg till en interaktiv karta

Lägger till en leaflet-karta i dashboarden.

I sidebar:

sidebarMenu(
    menuItem("Charts", ...),
    menuItem("Map", ...))

I body:

leafletOutput("map",...)

I server:

output$map <- renderLeaflet(map)
Bygga dashboards med shinydashboard

Nu kör vi en övning!

Bygga dashboards med shinydashboard

Preparing Video For Download...