Short description of analysis: Mapping the proportion of people with West Indian ancestry in Brooklyn
library(tidyverse)
library(tidycensus)
library(sf)
library(scales)
library(viridis)
library(plotly)
Borough boundaries are represented with a shapefile that was downloaded from NYC Open Data.
Census tract boundaries and data are from the 2016-2020 5-year American Community Survey, accessed with the tidyverse R package.
Census data includes: * the number of people with West Indian ancestry * total population that reports ancestry
The proportion of people with West Indian ancestry for each census tract was calculated and the census tracts with no residents were removed.
# import borough shapefiles from NYC Open Data
boros <- st_read("/Users/izzygroenewegen/Documents/F23/Methods 1/methods1/part2/data/raw/geo/Borough Boundaries.geojson")
# import Neighborhood Tabulation Areas for NYC
neighbs <- st_read("/Users/izzygroenewegen/Documents/F23/Methods 1/methods1/part2/data/raw/geo/nynta2020_23c/nynta2020.shp")
raw_ancestry <- get_acs(geography = "tract",
variables = c(ancestry_pop = "B04006_001",
west_indian = "B04006_094"),
state='NY',
county = 'Kings',
geometry = T,
year = 2020,
output = "wide")
## Warning: • You have not set a Census API key. Users without a key are limited to 500
## queries per day and may experience performance limitations.
## ℹ For best results, get a Census API key at
## http://api.census.gov/data/key_signup.html and then supply the key to the
## `census_api_key()` function to use it throughout your tidycensus session.
## This warning is displayed once per session.
west_indian <- raw_ancestry |>
mutate(pct_west_indian = west_indianE/ancestry_popE)|>
mutate(pct_west_indian = ifelse(is.nan(pct_west_indian), NA, pct_west_indian))|>
filter(ancestry_popE > 0)
west_indian_map <- ggplot()+
geom_sf( data = west_indian,
mapping = aes(fill = pct_west_indian,
text= paste0(NAME, ":",
"<br>Percent West Indian Ancestry:",
scales::percent(pct_west_indian, accuracy=1))),
color = "transparent") +
theme_void()+
scale_fill_distiller(breaks=c(0,.2,.4,.6,.8,1),
direction = 1,
na.value = "red",
name="Percent West Indian Ancestry (%)",
labels=percent_format(accuracy = 1L)) +
labs(
title = "Brooklyn, West Indian Ancestry by Census Tract",
caption = "Source: American Community Survey, 2016-20")+
geom_sf(data = neighbs |> filter(BoroName == "Brooklyn"),
color = "pink", fill = NA, lwd = 0.25) +
geom_sf(data = boros |> filter(boro_name == "Brooklyn"),
color = "black", fill = NA, lwd = .2)
## Warning in layer_sf(geom = GeomSf, data = data, mapping = mapping, stat = stat,
## : Ignoring unknown aesthetics: text
ggplotly(west_indian_map, tooltip = "text")
As you can see from the above map, people recording West Indian ancestry in Brooklyn are concentrated in the Crown Heights, East Flatbush, Flatlands, and Canarsie neighborhoods.