Éléments interactifs dans un shinydashboard

Créer des tableaux de bord avec shinydashboard

Png Kee Seng

Researcher

Scénario

  • Nous travaillons pour une agence de visites à Londres.

  • Les touristes ont besoin d'un endroit où séjourner.

  • Comment pouvons-nous les aider ?

Un graphique de Londres

  • Nombre d'inscriptions par plage de prix
  • Proportion de chambres privées
  • Prix moyens
  • Quelques graphiques
  • Un tableau de données
  • Une carte de Londres
1 Image par Freepik
Créer des tableaux de bord avec shinydashboard

Croquis du tableau de bord

Un croquis sommaire du tableau de bord.

Créer des tableaux de bord avec shinydashboard

Création du tableau de bord : cadrage initial

Créer une maquette en configurant un shinydashboard vide avec un titre et des boutons dans la barre latérale.

header <- dashboardHeader(
  title = "Home rental listings")
sidebar <- dashboardSidebar()
body <- dashboardBody()
ui <- dashboardPage(header, 
                    sidebar, 
                    body)
server <- function(input, output) {}
shinyApp(ui, server)
Créer des tableaux de bord avec shinydashboard

Création du tableau de bord : ajout de ValueBox

Ajouter des valueBox dans la maquette.

Dans body :

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

Dans server :

output$count <- renderValueBox({
    valueBox(..., icon = ...)})
output$prop <- renderValueBox(...)
...
Créer des tableaux de bord avec shinydashboard

Création du tableau de bord : ajout de contrôles

Ajouter des entrées — des contrôles pour les utilisateurs.

Dans body :

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

Mettre à jour server en utilisant input$range[1] et input$range[2]

Créer des tableaux de bord avec shinydashboard

Création du tableau de bord : ajout de graphiques interactifs

Ajouter des graphiques interactifs avec plotly.

Dans body :

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

Dans server :

output$plots <- renderPlotly({
      ...
  })
Créer des tableaux de bord avec shinydashboard

Création du tableau de bord : ajout d'un autre graphique

Ajouter un deuxième graphique sur la même page, accessible via un menu déroulant.

Dans body :

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

Dans server :

output$plots <- renderPlotly({
    if (input$select == ...){plot1}
    else if(input$select == ...){plot2}
  })
Créer des tableaux de bord avec shinydashboard

Création du tableau de bord : ajout d'une description et d'onglets

Ajouter du texte pour expliquer ce tableau de bord.

Dans body :

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

Mise à jour dans body :

tabBox(id = "tabset", ...,
    tabPanel("Charts", ...),
    tabPanel("Data table", ...)
Créer des tableaux de bord avec shinydashboard

Création du tableau de bord : ajout de tableaux interactifs

Ajouter des tableaux interactifs avec les fonctions dataTable.

Nous pouvons utiliser des fonctions shiny.

Dans body :

dataTableOutput("table")

Dans server :

output$table <- 
    renderDataTable(listings)
Créer des tableaux de bord avec shinydashboard

Création du tableau de bord : ajout d'une carte interactive

Ajouter une carte leaflet dans le tableau de bord.

Dans sidebar :

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

Dans body :

leafletOutput("map",...)

Dans server :

output$map <- renderLeaflet(map)
Créer des tableaux de bord avec shinydashboard

Passons à la pratique !

Créer des tableaux de bord avec shinydashboard

Preparing Video For Download...