library(dplyr)
library(tidyr)
library(grid)
library(scales)
library(ggplot2)
us <- data %>%
filter(State == "USA") %>%
gather(Year, Fatality, X1994:X2013) %>%
separate(Year, c("left","Year"), sep="X") %>%
select(-left)%>%
arrange(Year)
head(us, 3)
## State Year Fatality
## 1 45 1994 1.73
## 2 45 1995 1.73
## 3 45 1996 1.69
us_base <- us[us$Year==1994,3]
us$us_baseline <- us_base
us <- us %>% mutate(us_change = (Fatality-us_baseline)/us_baseline)
head(us)
## State Year Fatality us_baseline us_change
## 1 45 1994 1.73 1.73 0.00000000
## 2 45 1995 1.73 1.73 0.00000000
## 3 45 1996 1.69 1.73 -0.02312139
## 4 45 1997 1.65 1.73 -0.04624277
## 5 45 1998 1.58 1.73 -0.08670520
## 6 45 1999 1.55 1.73 -0.10404624
states <- data %>%
filter(State != "USA") %>%
gather(Year, Fatality, X1994:X2013) %>%
separate(Year, c("left","Year"), sep="X") %>%
select(-left) %>%
arrange(Year) %>%
filter(Fatality != "NA")
state_base <- states %>%
filter(Year == 1994) %>%
select(State, State_Baseline = Fatality)
states <- states %>%
left_join(state_base) %>%
arrange(State) %>%
mutate(state_change = (Fatality-State_Baseline)/State_Baseline)
states$Year <- as.numeric(states$Year)
us$Year <- as.numeric(us$Year)
rank <- states %>%
filter(Year == 2013) %>%
arrange(desc(state_change)) %>%
mutate(rank = seq(1,length(State), by=1)) %>%
filter(rank < 6 | rank > 46 )
p <- ggplot(states, aes(Year, state_change, group=State)) +
theme_bw() +
theme(plot.background = element_blank(),
panel.grid.minor = element_blank(),
panel.grid.major.x = element_blank(),
panel.grid.major.y = element_line(linetype = 3, colour = "grey50"),
panel.border = element_blank(),
panel.background = element_blank(),
text=element_text(size=20),
axis.ticks = element_blank(),
axis.title = element_blank()) +
geom_line(colour="grey90", alpha=.9)+
labs(title="Changes in Traffic Fatality Rates [1994-2013]")+
scale_x_continuous(breaks = c(1995, 2000, 2005, 2010))
p <- p +
geom_line(data=us, aes(Year, us_change, group=1), linetype=5, size = 1.2)
p <- p +
geom_line(data=filter(states, State==44),
aes(Year, state_change, group=State), colour="#D8B70A", size = 1.5)
p <- p +
geom_line(data=filter(states, State==9),
aes(Year, state_change, group=State), colour="#046C9A",size=1.2) +
geom_line(data=filter(states, State==35),
aes(Year, state_change, group=State), colour="#C27D38",size=1.2)
p1 <- p + annotate("text", x = 2014.2, y = 0.07, label = "N. Dakota (5%)", color="#C27D38", size=5)
p2 <- p1 + annotate("text", x = 2014, y = -0.21, label = "Texas (-22%)", color="#D8B70A", size=5)
p3 <- p2 + annotate("text", x = 2014, y = -0.37, label = "USA (-37%)", color="black", size=5)
p4 <- p3 + annotate("text", x = 2014, y = -0.71, label = "D.C. (-72%)", color="#046C9A", size=5)
p4
Prepared by: Subasish Das