Aan de slagGa gratis aan de slag

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.

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

Deze oefening maakt deel uit van de cursus

Webapplicaties bouwen met Shiny in R

Cursus bekijken

Oefeninstructies

  • Werk de reactieve expressie rval_mass_shootings bij 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 de radius van de cirkel wordt gekoppeld aan fatalities en de parameter popup wordt gekoppeld aan summary. Let op: je kunt een parameter p aan een veld f koppelen met p = ~ 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)
Code bewerken en uitvoeren