LoslegenKostenlos starten

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

<Kurs>Webanwendungen mit Shiny in R entwickeln</Kurs>
Kurs ansehen

Übungsanweisungen

  • 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 praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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