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.

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
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()đểradiuscủa vòng tròn được ánh xạ tớifatalitiesvà tham sốpopupđược ánh xạ tớisummary. Lưu ý bạn có thể ánh xạ tham sốptới trườngfbằngp = ~ 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)