library(tidyverse)
library(plotly)
library(sf)
library(knitr)
# First, we will import the cleaned squirrel data and a shapefile of Central Park.
squirrel_census =
read_csv("data/clean_squirrel_2018.csv")
central_park_map = st_read(here::here('central_park', 'CentralPark.shp'), quiet = TRUE)
In the 2018 census, there are 2824 unique squirrel sightings documented. As volunteer researchers observed the squirrels, they provided each squirrel with a unique identifier and documented the age and fur colors of each critter.
squirrel_census |>
filter(age != "?") |>
ggplot() +
geom_sf(data = central_park_map, color = "grey") +
geom_point(
aes(x = x, y = y, color = age),
size = 0.5, alpha = 0.5) +
theme_void(base_size = 15) +
theme(legend.position = 'bottom') +
guides(color = guide_legend(
title.position = "top",
override.aes = list(size = 3))) +
scale_color_manual(values = c("Adult" = "aquamarine3", "Juvenile" = "slateblue3")) +
labs(color = "Age")
age_bar = squirrel_census |>
filter(age != "?") |>
group_by(age) |>
count(age) |>
mutate(Age = fct_reorder(age, n)) |>
plot_ly (x = ~age, y = ~n, color = ~age,
type = "bar") |>
layout(
xaxis = list(title = "Age"),
yaxis = list(title = "Number of Squirrels")
)
age_bar
## Warning in RColorBrewer::brewer.pal(N, "Set2"): minimal value for n is 3, returning requested palette with 3 different levels
## Warning in RColorBrewer::brewer.pal(N, "Set2"): minimal value for n is 3, returning requested palette with 3 different levels
The majority of observed squirrels are adults.
There are
2503 adult
squirrels in the data set and only 319
juvenile
squirrels.
We can also see that juvenile
squirrels can be
frequently observed in some areas of the Central Park, such as Central
Park West between 72nd St. and 66th St.
Some squirrels model only one fur color, but some extra fashionable
squirrels will don mixed patterns of multiple fur colors. The
primary
fur color is the main color of the squirrel and the
secondary
colors accent the primary
color to
give some squirrels unique style.
squirrel_census |>
filter(!(combination_of_primary_and_highlight_color %in% c("N/A", "?"))) |>
group_by(primary_fur_color) |>
count(primary_fur_color) |>
mutate(primary_fur_color = fct_reorder(primary_fur_color, n)) |>
plot_ly (x = ~primary_fur_color, y = ~n, color = ~primary_fur_color,
type = "bar", colors = "viridis") |>
layout(
xaxis = list(title = "Primary Fur Color"),
yaxis = list(title = "Number of Squirrels"),
legend = list(x = 0, y = 1, orientation = "h")
)
We can see that most squirrels in Central Park have gray
fur with some cinnamon
or white
accents
(above). Squirrels that are black
with or without any
accent colors are very rare! Consider yourself lucky if you’ve ever seen
one of them frolicking in the park!
If you’d like to try your luck and observe a black
squirrel in “the wild”, we’d recommend hanging around some specific
spots that the black
squirrels seem to cluster in, like the
South-East corner of the park or the North Woods above 96th St, as shown
on the map (right).
squirrel_census |>
rename(combination_fur_color = combination_of_primary_and_highlight_color) |>
count(combination_fur_color) |>
mutate(combination_fur_color = fct_reorder(combination_fur_color, n)) |>
plot_ly (x = ~combination_fur_color, y = ~n, color = ~combination_fur_color,
type = "bar", colors = "viridis") |>
layout(
xaxis = list(title = "All Fur Colors",showticklabels = FALSE),
yaxis = list(title = "Number of Squirrels")
)
ggplot() +
geom_sf(data = central_park_map, color = "grey") +
geom_point(
data = squirrel_census,
aes(x = x, y = y, color = primary_fur_color),
size = 0.5, alpha = 0.75) +
theme_void(base_size = 15) +
theme(legend.position = 'bottom') +
guides(color = guide_legend(
title.position = "top",
override.aes = list(size = 3))) +
labs(color = 'Primary Fur Color') +
scale_color_manual(values = c("Black" = "black", "Gray" = "azure4", "Cinnamon" = "darkorange3"))