CommencerCommencez gratuitement

Fusillades de masse : modifier la sortie

Dans cet exercice, vous allez étendre l’application Shiny créée précédemment afin que des cercles rouges, dont la taille dépend du nombre de victimes, apparaissent sur la carte interactive, avec un résumé du cas lorsqu’on clique sur un cercle. Votre application ressemblera à l’image de cette capture d’écran.

An app displaying red circles for each mass shooting incident with details appearing on clicking the circle

Cet exercice fait partie du cours

<cours>Créer des applications web avec Shiny en R</cours>
Voir le cours

Instructions de l’exercice

  • Mettez à jour l’expression réactive rval_mass_shootings pour que le jeu de données soit filtré selon le nombre de victimes (nb_fatalities) et l’intervalle de dates (date_range) sélectionnés par l’utilisateur.
  • Modifiez le code dans addCircleMarkers() pour que le radius du cercle soit lié à fatalities et que le paramètre popup soit lié à summary. Notez que vous pouvez lier un paramètre p à un champ f avec p = ~ f.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

ui <- bootstrapPage(
  theme = shinythemes::shinytheme('simplex'),
  leaflet::leafletOutput('map', height = '100%', width = '100%'),
  absolutePanel(top = 10, right = 10, id = 'controls',
    sliderInput('nb_fatalities', 'Minimum Fatalities', 1, 40, 10),
    dateRangeInput('date_range', 'Select Date', "2010-01-01", "2019-12-01")
  ),
  tags$style(type = "text/css", "
    html, body {width:100%;height:100%}     
    #controls{background-color:white;padding:20px;}
  ")
)

server <- function(input, output, session) {
  rval_mass_shootings <- reactive({
    # MODIFY CODE BELOW: Filter mass_shootings on nb_fatalities and 
    # selected date_range.
    mass_shootings

      
      
      
      
  })
  output$map <- leaflet::renderLeaflet({
    rval_mass_shootings() %>%
      leaflet() %>% 
      addTiles() %>%
      setView( -98.58, 39.82, zoom = 5) %>% 
      addTiles() %>% 
      addCircleMarkers(
        # CODE BELOW: Add parameters popup and radius and map them
        # to the summary and fatalities columns

        fillColor = 'red', color = 'red', weight = 1
      )
  })
}

shinyApp(ui, server)
Modifier et exécuter le code