Downloading and reading data

Data was downloaded from Coursera

fl <- bzfile("./data/repdata_data_StormData.csv.bz2", open="r")

#Load data and assign it to variable "data"
storm <- read.csv(fl, stringsAsFactors=FALSE)

close(fl)

Libraries

library(maps)
library(ggplot2)
library(plyr)
library(reshape2)

Making data set smaller

# column of interest 
colnm <- c("BGN_DATE", "STATE", "EVTYPE", "FATALITIES", "INJURIES", "PROPDMG", "PROPDMGEXP", "CROPDMG", "CROPDMGEXP")

# small storm data set
sstorm <- storm[, colnm]
# only 50 US state and DC
sstorm <- sstorm[storm$STATE %in% state.abb, ]

Combinig maps data and tornado data

# combinig data
sstorm <- subset(sstorm, sstorm$EVTYPE == "TORNADO")
sstorm.agr <- aggregate(sstorm$INJURIES, by=list(sstorm$STATE), FUN=sum)
colnames(sstorm.agr) <- c("abb", "Injuries")

states.all <- data.frame(abb = state.abb, name = state.name)
sstorm.agr <- merge(sstorm.agr, states.all, by="abb")

sstorm.agr$name <- tolower(sstorm.agr$name)
colnames(sstorm.agr) <- c("abb", "Injuries", "region")

Making plot

library(maps)
library(ggplot2)
library(ggthemes)
library(plyr)

us_state_map1 <- map_data('state')
states1 <- data.frame(state.center, state.abb)
map_data1 <- merge(sstorm.agr, us_state_map1, by = 'region')
map_data1 <- arrange(map_data1, order)


p1 <- ggplot(data = map_data1, aes(x = long, y = lat, group = group))
p1 <- p1 + geom_polygon(aes(fill = cut_number(Injuries, 5)))
p1 <- p1 + geom_path(colour = 'gray', linestyle = 2)
p1 <- p1 + scale_fill_brewer('Injuries by Tonado (1950-2011)', palette  = 12) #'PuRd'
p1 <- p1 + geom_text(data = states1, aes(x = x, y = y, label = state.abb, group = NULL), size = 2)
p1 <- p1 + theme_minimal() + theme(legend.position="none")
p1

Injuries by tornado