Bắt đầu ngayBắt đầu miễn phí

Xả súng hàng loạt: chỉnh sửa đầu ra

Trong bài tập này, bạn sẽ mở rộng Shiny app mà bạn đã xây dựng trước đó để các vòng tròn màu đỏ có kích thước dựa trên số người thiệt mạng xuất hiện trên bản đồ tương tác, cùng với phần tóm tắt của vụ việc khi bạn bấm vào vòng tròn. Ứng dụng của bạn sẽ giống như hình trong ảnh chụp màn hình này.

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

Bài tập này là một phần của khóa học

Xây dựng ứng dụng web với Shiny trong R

Xem khóa học

Hướng dẫn bài tập

  • Cập nhật biểu thức reactive rval_mass_shootings để lọc tập dữ liệu dựa trên số người thiệt mạng (nb_fatalities) và khoảng ngày (date_range) do người dùng chọn.
  • Cập nhật đoạn mã bên trong addCircleMarkers() để radius của vòng tròn được ánh xạ tới fatalities và tham số popup được ánh xạ tới summary. Lưu ý bạn có thể ánh xạ tham số p tới trường f bằng p = ~ f.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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)
Chỉnh sửa và Chạy Mã