Začněte nyníZačněte zdarma

Střelby: úprava výstupu

V tomto cvičení rozšíříš Shiny aplikaci, kterou jsi sestavil/a dříve, tak aby se na interaktivní mapě zobrazovaly červené kruhy s velikostí odpovídající počtu obětí a po kliknutí na kruh se zobrazil souhrn daného případu. Tvoje aplikace bude vypadat podobně jako na tomto snímku.

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

Toto cvičení je součástí kurzu

Tvorba webových aplikací se Shiny v R

Zobrazit kurz

Pokyny k cvičení

  • Uprav reaktivní výraz rval_mass_shootings tak, aby byl dataset filtrován podle počtu obětí (nb_fatalities) a rozsahu dat (date_range) zvoleného uživatelem.
  • Uprav kód uvnitř addCircleMarkers() tak, aby byl parametr radius namapován na fatalities a parametr popup na summary. Parametr p lze namapovat na pole f pomocí p = ~ f.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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)
Upravit a spustit kód