Xả súng hàng loạt

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

Ramnath Vaidyanathan

VP of Product Research

Khám phá dữ liệu

10 hàng đầu tiên của bộ dữ liệu xả súng hàng loạt

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

Ứng dụng hiển thị các vòng tròn đỏ cho từng vụ xả súng hàng loạt, chi tiết xuất hiện khi nhấp vào vòng tròn

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

Thêm UI

ui <- bootstrapPage(
  theme = shinythemes::shinytheme('simplex'),

leaflet::leafletOutput('map', width = '100%', height = '100%'),
absolutePanel(top = 10, right = 10, id = 'controls',
sliderInput('nb_fatalities', 'Số người chết tối thiểu', 1, 40, 10),
dateRangeInput('date_range', 'Chọn ngày', "2010-01-01", "2019-12-01"),
)
, tags$style(type = "text/css", " html, body {width:100%;height:100%} #controls{background-color:white;padding:20px;} ")
)
Xây dựng ứng dụng web với Shiny trong R

Thêm output: bản đồ tương tác

server <- function(input, output, session){

output$map <- leaflet::renderLeaflet({
leaflet() %>%
addTiles() %>%
setView( -98.58, 39.82, zoom = 5)
})
}
Xây dựng ứng dụng web với Shiny trong R

Ứng dụng với bản đồ tương tác của Hoa Kỳ và các điều khiển chọn khoảng ngày và số người chết

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

Thêm biểu thức reactive

rval_mass_shootings <- reactive({

mass_shootings %>%
filter(
date >= input$date_range[1],
date <= input$date_range[2],
fatalities >= input$nb_fatalities
)
})
Xây dựng ứng dụng web với Shiny trong R

Cập nhật output: bản đồ tương tác

output$map <- leaflet::renderLeaflet({

rval_mass_shootings() %>%
leaflet() %>% addTiles() %>% setView( -98.58, 39.82, zoom = 5) %>%
addCircleMarkers(
popup = ~ summary,
radius = ~ fatalities,
fillColor = 'red', color = 'red', weight = 1
)
})
Xây dựng ứng dụng web với Shiny trong R

Ứng dụng hiển thị các vòng tròn đỏ cho từng vụ xả súng hàng loạt, chi tiết xuất hiện khi nhấp vào vòng tròn

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

Cập nhật ứng dụng: thêm nút và modal

ui <- bootstrapPage(
  theme = shinythemes::shinytheme('simplex'),
  leaflet::leafletOutput('map', width = '100%', height = '100%'),
  absolutePanel(top = 10, right = 10, id = 'controls',
    sliderInput('nb_fatalities', 'Số người chết tối thiểu', 1, 40, 10),
    dateRangeInput('date_range', 'Chọn ngày', "2010-01-01", "2019-12-01"),

actionButton('show_about', 'Giới thiệu')
) )
server <- function(input, output, session){

observeEvent(input$show_about, {
showModal(modalDialog(text_about, title = 'Giới thiệu'))
})
}
Xây dựng ứng dụng web với Shiny trong R

Ứng dụng hiển thị các vòng tròn đỏ cho từng vụ xả súng hàng loạt, chi tiết xuất hiện khi nhấp vào vòng tròn

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

Ayo berlatih!

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

Preparing Video For Download...