MulaiMulai sekarang secara gratis

Penembakan massal: modifikasi keluaran

Dalam latihan ini, Anda akan memperluas aplikasi Shiny yang sebelumnya Anda bangun sehingga lingkaran merah dengan ukuran berdasarkan jumlah korban jiwa muncul pada peta interaktif, bersamaan dengan ringkasan kasus saat lingkaran diklik. Aplikasi Anda akan menyerupai gambar pada cuplikan layar ini.

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

Latihan ini adalah bagian dari kursus

Membangun Aplikasi Web dengan Shiny di R

Lihat Kursus

Petunjuk latihan

  • Perbarui ekspresi reaktif rval_mass_shootings sehingga himpunan data difilter berdasarkan jumlah korban jiwa (nb_fatalities) dan rentang tanggal (date_range) yang dipilih pengguna.
  • Perbarui kode di dalam addCircleMarkers() sehingga radius lingkaran dipetakan ke fatalities dan parameter popup dipetakan ke summary. Perhatikan bahwa Anda dapat memetakan parameter p ke kolom/field f menggunakan p = ~ f.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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)
Edit dan Jalankan Kode