library(tidyverse)
library(tidycensus)
library(sf)
library(scales)
library(RColorBrewer)
library(plotly)
## Warning: package 'plotly' was built under R version 4.3.2
library(knitr)
#### import borough shapefiles from NYC Open Data
boros <- st_read("D:/Parson Schoool Of Design/Design Method/Lesson/Week1/Part2/data/processed/geo/Borough Boundaries.geojson")

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) |> 
  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: ",
                                      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 = "#fafafa",
                       # na.value = "transparent",
                       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 = boros |> filter(boro_name == "Brooklyn"), 
          color = "black", fill = NA, lwd = .5)
## Warning in layer_sf(geom = GeomSf, data = data, mapping = mapping, stat = stat,
## : Ignoring unknown aesthetics: text
## Warning in layer_sf(geom = GeomSf, data = data, mapping = mapping, stat = stat,
## : Ignoring unknown aesthetics: text
ggplotly(west_indian_map, tooltip = "text")