Inizia subitoInizia gratis

Sparatorie di massa: modifica l'output

In questo esercizio estenderai la Shiny app che hai costruito in precedenza in modo che sul mappa interattiva compaiano cerchi rossi la cui dimensione dipende dal numero di vittime, insieme a un riepilogo del caso quando si clicca sul cerchio. La tua app sarà simile all'immagine in questo screenshot.

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

Questo esercizio fa parte del corso

Creare applicazioni web con Shiny in R

Visualizza corso

Istruzioni dell'esercizio

  • Aggiorna l'espressione reattiva rval_mass_shootings in modo che il dataset sia filtrato in base al numero di vittime (nb_fatalities) e all'intervallo di date (date_range) selezionati dall'utente.
  • Aggiorna il codice dentro addCircleMarkers() in modo che il radius del cerchio sia mappato a fatalities e il parametro popup sia mappato a summary. Nota che puoi mappare un parametro p a un campo f usando p = ~ f.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

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)
Modifica ed esegui il codice