开始使用免费开始使用

大规模枪击事件:修改输出

在本练习中,您将扩展之前构建的 Shiny 应用,使交互式地图上出现根据死亡人数确定大小的红色圆点,并在点击圆点时显示该事件的摘要。您的应用将类似于这张截图中的效果。

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

本练习是课程的一部分

使用 R 构建 Shiny Web 应用

查看课程

练习说明

  • 更新响应式表达式 rval_mass_shootings,使数据集根据用户选择的死亡人数(nb_fatalities)和日期范围(date_range)进行筛选。
  • 更新 addCircleMarkers() 内的代码,使圆点的 radius 映射到 fatalities,并将 popup 参数映射到 summary。请注意,您可以使用 p = ~ f 将参数 p 映射到字段 f

交互式实操练习

通过完成这段示例代码来试试这个练习。

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)
编辑并运行代码