LoslegenKostenlos loslegen

Mass Shootings: Ausgabe anpassen

In dieser Übung erweiterst du die Shiny-App, die du zuvor gebaut hast, sodass rote Kreise, deren Größe auf der Anzahl der Todesopfer basiert, auf der interaktiven Karte erscheinen. Beim Klicken auf einen Kreis wird zudem eine Zusammenfassung des Falls angezeigt. Deine App wird dem Bild auf diesem Screenshot ähneln.

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

Diese Übung ist Teil des Kurses

Webanwendungen mit Shiny in R entwickeln

Kurs anzeigen

Anleitung zur Übung

  • Aktualisiere den reaktiven Ausdruck rval_mass_shootings, sodass der Datensatz basierend auf der Anzahl der Todesopfer (nb_fatalities) und dem vom Benutzer gewählten Datumsbereich (date_range) gefiltert wird.
  • Aktualisiere den Code in addCircleMarkers(), sodass der radius der Kreise auf fatalities abgebildet wird und der Parameter popup auf summary. Beachte: Du kannst einen Parameter p auf ein Feld f abbilden mit p = ~ f.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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 bearbeiten und ausführen