Christmas Bird Counts: TidyTuesday
TidyTuesday
Keywords
tech, DataAnalysis, R, Visualizations, TidyTuesday
Introduction
Visualizing bird watching data as collected in Hamilton area of Ontario during Christmas time since 1921. Working on the weekly social data project Tidy Tuesday.
Analysis
Load libraries
rm(list = ls())
library(tidyverse)
library(lubridate)
library(ggplot2)
library(gganimate)
library(gridExtra)
library(scales)
theme_set(theme_light())
<- readr::read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2019/2019-06-18/bird_counts.csv")
bird_counts
bird_counts
## # A tibble: 18,706 x 6
## year species species_latin how_many_counted total_hours how_many_counte…
## <dbl> <chr> <chr> <dbl> <dbl> <dbl>
## 1 1921 American … Botaurus lent… 0 8 0
## 2 1921 American … Anas rubripes 0 8 0
## 3 1921 American … Fulica americ… 0 8 0
## 4 1921 American … Corvus brachy… 0 8 0
## 5 1921 American … Spinus tristis 0 8 0
## 6 1921 American … Falco sparver… 0 8 0
## 7 1921 American … Anthus rubesc… 0 8 0
## 8 1921 American … Turdus migrat… 1 8 0.125
## 9 1921 American … Picoides dors… 0 8 0
## 10 1921 American … Spizelloides … 12 8 1.5
## # … with 18,696 more rows
%>%
bird_counts summary
## year species species_latin how_many_counted
## Min. :1921 Length:18706 Length:18706 Min. : 0.0
## 1st Qu.:1947 Class :character Class :character 1st Qu.: 0.0
## Median :1970 Mode :character Mode :character Median : 0.0
## Mean :1970 Mean : 193.5
## 3rd Qu.:1994 3rd Qu.: 5.0
## Max. :2017 Max. :73000.0
##
## total_hours how_many_counted_by_hour
## Min. : 8.0 Min. : 0.000
## 1st Qu.:149.5 1st Qu.: 0.000
## Median :171.0 Median : 0.000
## Mean :170.8 Mean : 1.336
## 3rd Qu.:203.8 3rd Qu.: 0.051
## Max. :251.0 Max. :439.024
## NA's :3781 NA's :3781
Which are the 5 most common birds over years?
%>%
bird_counts group_by(year) %>%
mutate(rank = min_rank(-how_many_counted) * 1) %>%
ungroup() %>%
filter(rank <= 5) %>%
ggplot(aes(rank,
group = species,
fill = as.factor(species),
color = as.factor(species))) +
geom_tile(aes(y = how_many_counted/2,
height = how_many_counted,
width = 0.9),
alpha = 0.8,
color = NA) +
geom_text(aes(y = 0,
label = paste(species, " ")),
vjust = 0.2,
hjust = 1) +
coord_flip(clip = "off",
expand = FALSE) +
scale_y_continuous(labels = scales::comma) +
scale_x_reverse() +
guides(color = FALSE,
fill = FALSE) +
labs(title = '{closest_state}',
subtitle = "Which are the 5 most common birds over years? Birds seen in the Hamilton area of Ontario during Christmas since 1921",
caption = "Based on data from @BirdsCanada",
x = "",
y = "Sights per year") +
theme(plot.title = element_text(hjust = 0, size = 22),
axis.ticks.y = element_blank(),
axis.text.y = element_blank(),
plot.margin = margin(1,1,1,4,"cm")) +
transition_states(year, transition_length = 4, state_length = 1) +
ease_aes('cubic-in-out') -> p
%>%
p animate(fps = 5,
nframes = 200,
duration = 30,
width = 800,
height = 600,
renderer = gifski_renderer("../data/christmas_bird_counts/most_common.gif"))