· 5 years ago · May 21, 2020, 03:38 AM
1# https://www.reddit.com/r/dataisbeautiful/comments/gnpdpc/oc_per_capita_covid19_deaths_colored_by_governor/
2library(COVID19)
3library(dplyr)
4library(purrr)
5library(ggplot2)
6library(usmap)
7library(tidycensus)
8
9census_api_key("<< YOUR CENSUS API KEY >>", install=TRUE)
10
11pop = get_estimates(geography = "state", variables=c("POP"))
12
13coronavirus <- covid19(
14 country = c("US"),
15 level = 2
16)
17
18blue_states = c("California", "Colorado", "Connecticut", "Delaware", "Hawaii", "Illinois", "Kansas", "Kenstucky", "Louisiana", "Maine", "Michigan", "Minnesota", "Montana", "Nevada", "New Jersey", "New Mexico", "New York", "North Carolina", "Oregon", "Pennsylvania", "Rhode Island", "Virginia", "Washington", "Wisconsin")
19states = levels(as.factor(coronavirus$administrative_area_level_2))
20map_fn = function(state){
21 v = ((
22 sum(
23 filter(coronavirus, administrative_area_level_2 == state)$deaths
24 ) / pop[which(pop$NAME == state), ]$value)# * 1000000
25 )# %>% log(10)
26 ifelse(state %in% blue_states, v, -v)
27}
28by_state = unlist(map(states, map_fn))
29
30data = data.frame(state = states, deaths = by_state)
31
32plot_usmap(regions = "states", data = data, values = "deaths") +
33 ggplot2::scale_fill_gradient2(name="Deaths per capita", label=scales::comma, low="red", mid="white", high="blue") +
34 theme(legend.position = "right")