Student Details

library(ggplot2) #Required
library(dplyr) #Data wrangling
library(tidyr) #Data wrangling
library(rgeos) #Mapping
library(maptools) #Mapping
library(ggmap) #Mapping
library(broom) #Mapping
library(readr)
library(grid)
library(gridExtra)
library(ggpubr)
library(plotrix)
library(knitr)
library(RColorBrewer)

Data

Fatalcrash <- read_csv("C:/RMIT/Data-Visualisation/R/Crashes_Last_Five_Years.csv")
Fatalcrash$SPEED_ZONE[Fatalcrash$SPEED_ZONE == "30 km/hr"] <- "30-60"
Fatalcrash$SPEED_ZONE[Fatalcrash$SPEED_ZONE == "40 km/hr"] <- "30-60"
Fatalcrash$SPEED_ZONE[Fatalcrash$SPEED_ZONE == "50 km/hr"] <- "30-60"
Fatalcrash$SPEED_ZONE[Fatalcrash$SPEED_ZONE == "60 km/hr"] <- "30-60"
Fatalcrash$SPEED_ZONE[Fatalcrash$SPEED_ZONE == "70 km/hr"] <- "70-90"
Fatalcrash$SPEED_ZONE[Fatalcrash$SPEED_ZONE == "80 km/hr"] <- "70-90"
Fatalcrash$SPEED_ZONE[Fatalcrash$SPEED_ZONE == "90 km/hr"] <- "70-90"
Fatalcrash$SPEED_ZONE[Fatalcrash$SPEED_ZONE == "100 km/hr"] <- "100"
Fatalcrash$SPEED_ZONE[Fatalcrash$SPEED_ZONE == "110 km/hr"] <- "110"
Fatalcrash$SPEED_ZONE[Fatalcrash$SPEED_ZONE == "Camping grounds or off road"] <- "Others"
Fatalcrash$SPEED_ZONE[Fatalcrash$SPEED_ZONE == "Not known"] <- "Others"
Fatalcrash$SPEED_ZONE[Fatalcrash$SPEED_ZONE == "Other speed limit"] <- "Others"


Fatalcrash$SPEED_ZONE <- Fatalcrash$SPEED_ZONE %>% 
factor(levels = c("30-60", "70-90", "100", "110","Others"),
         ordered = TRUE)
Low_filtered <- Fatalcrash %>% filter(Fatalcrash$SPEED_ZONE == '30-60')
Average_filtered <- Fatalcrash %>% filter(Fatalcrash$SPEED_ZONE == '70-90')
High_filtered <- Fatalcrash %>% filter(Fatalcrash$SPEED_ZONE == '100')
Higher_filtered <- Fatalcrash %>% filter(Fatalcrash$SPEED_ZONE == '110')

Visualisation

vic <- get_map("Victoria,Australia", zoom = 8,  source = "stamen",  maptype = "toner")

G <- ggmap(vic)

G1 <- G + geom_point(data=Low_filtered, aes(x=X, y=Y),
                size=1, colour = "pink1", alpha = .5)

G2 <- G1 + geom_point(data=Average_filtered, aes(x=X, y=Y),
                size=1, colour = "hotpink", alpha = .5) 

G3 <- G2 + geom_point(data=High_filtered, aes(x=X, y=Y),
                size=1, colour = "hotpink4", alpha = .5)

G4 <- G3 + geom_point(data=Higher_filtered, aes(x=X, y=Y),
                size=1, colour = "red2", alpha = .5)+
  labs(title = "Figure 1: Location of fatalities across Victoria by speed zone(km/h)",
       x = "Longitude", y = "Latitude")

table_1 <- table(Fatalcrash$SPEED_ZONE,Fatalcrash$REGION_NAME) %>% prop.table(margin = 2)

tab1 <- data.frame(table_1)

p1 <- ggplot(data = tab1, aes(x = tab1$Var1,y = tab1$Freq, fill =  tab1$Var1 ))
p1<-p1 + geom_bar(stat = "identity",position = "dodge")+ scale_fill_manual(values=c('pink1','hotpink','hotpink4','red2','#999999'))+ labs(title="Figure 2: Proportion of fatal crahses by speed zone(km/h) and region",y = "proportion", x = "") +theme(legend.position="none") +facet_wrap(~ Var2)

table_2 <- table(Fatalcrash$SPEED_ZONE,Fatalcrash$ACCIDENT_TYPE) %>% prop.table(margin = 2)
tab2 <- data.frame(table_2) 

p2 <- ggplot(data = tab2, aes(x = tab2$Var1,y = tab2$Freq ,fill =  tab2$Var1 ))
p2<-p2 + geom_bar(stat = "identity",position = "dodge")+scale_fill_manual(values=c('pink1','hotpink','hotpink4','red2','#999999')) +labs(title="Figure 3: Proportion of fatal crashes by speed zone(km/h) and crash type",y = "proportion", x = "")+theme(legend.position="none")+facet_wrap(~ Var2)


title1=textGrob("VICTORIA FATAL CRASHED LAST FIVE YEAR (JAN 2012 - SEP 2017)", gp=gpar(fontface="bold",fontsize = 16, col = "navy"))
grid.arrange(G4,                            
             arrangeGrob(p1, p2, nrow = 2), nrow = 1,top=title1,
             bottom = textGrob("Source(s): data.vic.gov.au", gp =gpar(fontsize = 10, col = "gray40")))