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.

Cet exercice fait partie du cours
<cours>Créer des applications web avec Shiny en R</cours>Instructions de l’exercice
- Mettez à jour l’expression réactive
rval_mass_shootingspour 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 leradiusdu cercle soit lié àfatalitieset que le paramètrepopupsoit lié àsummary. Notez que vous pouvez lier un paramètrepà un champfavecp = ~ 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)