Massaschietpartijen: output aanpassen
In deze oefening breid je de Shiny-app die je eerder hebt gebouwd uit, zodat rode cirkels, geschaald op basis van het aantal dodelijke slachtoffers, op de interactieve kaart verschijnen, samen met een samenvatting van de zaak wanneer je op de cirkel klikt. Je app zal lijken op de afbeelding in deze screenshot.

Deze oefening maakt deel uit van de cursus
Webapplicaties bouwen met Shiny in R
Oefeninstructies
- Werk de reactieve expressie
rval_mass_shootingsbij zodat de gegevensset wordt gefilterd op basis van het aantal dodelijke slachtoffers (nb_fatalities) en de datumbereikselectie (date_range) van de gebruiker. - Pas de code binnen
addCircleMarkers()aan zodat deradiusvan de cirkel wordt gekoppeld aanfatalitiesen de parameterpopupwordt gekoppeld aansummary. Let op: je kunt een parameterpaan een veldfkoppelen metp = ~ f.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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)