Maps

Author

Collin Owens

library(dplyr)
Warning: package 'dplyr' was built under R version 4.0.5

Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union
library(ggplot2)
Warning: package 'ggplot2' was built under R version 4.0.5
library(leaflet)
Warning: package 'leaflet' was built under R version 4.0.5
library(stringr)
library(plotly)
Warning: package 'plotly' was built under R version 4.0.5

Attaching package: 'plotly'
The following object is masked from 'package:ggplot2':

    last_plot
The following object is masked from 'package:stats':

    filter
The following object is masked from 'package:graphics':

    layout
library(ggdendro)
Warning: package 'ggdendro' was built under R version 4.0.5
library(viridis)
Warning: package 'viridis' was built under R version 4.0.5
Loading required package: viridisLite
Warning: package 'viridisLite' was built under R version 4.0.5
library(leafpop)
Warning: package 'leafpop' was built under R version 4.0.5
library(tidyr)
Warning: package 'tidyr' was built under R version 4.0.5

Reading in Data and merging

States <- read.csv("D:\\GradSchool\\STA 566\\Data\\states.csv")
names(States)[1] <- "states"
names(States)[2] <- "SABR"

Cities <- read.csv("D:\\GradSchool\\STA 566\\Data\\uscities.csv")
names(Cities)[1] <- "HOMETOWN"
names(Cities)[2] <- "SABR"
names(Cities)[4] <- "clat"
names(Cities)[5] <- "clong"

BBrank <- read.csv("D:\\GradSchool\\STA 566\\Data\\Basketball2023.csv")
names(BBrank)[7] <- "SABR"

FBrank <- read.csv("D:\\GradSchool\\STA 566\\Data\\Football2023.csv")
FBrank <- subset(FBrank, select=-c(STARS))
names(FBrank)[9] <- "SABR"

USA <- map_data("state")
names(USA)[5] <- "states"

USA <- USA %>% mutate(states = str_to_title(states))
USA <- left_join(USA, States, by="states")
names(USA)[7] <- "SABR"

BBrank <- left_join(BBrank, States, by="SABR")


FBrank <- left_join(FBrank, States, by="SABR")

Creating a count for states and how many top 100 players they have

BBStaterank <- BBrank %>% group_by(SABR) %>% summarize(n = n())

FBStaterank <- FBrank %>% group_by(SABR) %>% summarize(n = n())

TotalRank <- left_join(BBStaterank, FBStaterank, by = "SABR", all=T)
TotalRank$n.x[is.na(TotalRank$n.x)] <- 0
TotalRank$n.y[is.na(TotalRank$n.y)] <- 0
TotalRank$n <- TotalRank$n.x + TotalRank$n.y
TotalRank <- TotalRank[,-c(2,3)]

New data set with the counts

BBUSA <- right_join(BBStaterank, USA, by="SABR", all=T)
names(BBUSA)[2] <- "Players"
FBUSA <- right_join(FBStaterank, USA, by="SABR", all=T)
names(FBUSA)[2] <- "Players"

TotalUSA <- right_join(TotalRank, USA, by="SABR", all=T)
names(TotalUSA)[2] <- "Players"

First graph

This will look at basketball top 100 recruits and which home state they are from.

BBGraph <- ggplot(data = BBUSA, aes(x = long, y = lat, group = group, fill = Players, text = paste("Number of players in state:", round(Players))))
BBGraph <- BBGraph + geom_polygon(color = "white") + ggdendro::theme_dendro() + scale_fill_viridis(option = "rocket") + ggtitle("ESPN Top 100 Basketball players by homestate")
ggplotly(BBGraph, tooltip = "text")
?ggtitle
starting httpd help server ... done

Football

Same as above, but with football.

FBGraph <- ggplot(data = FBUSA, aes(x = long, y = lat, group = group, fill = Players, text = paste("Number of players in state:", round(Players))))
FBGraph <- FBGraph + geom_polygon(color = "white") + ggdendro::theme_dendro() + scale_fill_viridis(option = "rocket") + ggtitle("ESPN Top 100 Football players by homestate")
ggplotly(FBGraph, tooltip = "text")

Total

TotalGraph <- ggplot(data = TotalUSA, aes(x = long, y = lat, group = group, fill = Players, text = paste("Number of players in state:", round(Players))))
TotalGraph <- TotalGraph + geom_polygon(color = "white") + ggdendro::theme_dendro() + scale_fill_viridis(option = "rocket") + ggtitle("ESPN combined top 100 Football and Basketball players by state")
ggplotly(TotalGraph, tooltip = "text")

Leaflet setup

USAv <- USA %>% group_by(SABR) %>% summarise(lat=mean(lat), long=mean(long))

BBUSAL <- right_join(BBStaterank, USAv, by="SABR", all=T)
names(BBUSA)[2] <- "Players"

FBUSAL <- right_join(FBStaterank, USAv, by="SABR", all=T)
names(FBUSA)[2] <- "Players"

TotalUSAL <- right_join(TotalRank, USAv, by="SABR", all=T)
names(TotalUSA)[2] <- "Players"

BBrankL <- right_join(BBrank, USAv, by="SABR", all=T)
BBrankL <- na.omit(BBrankL)

BBrankLC <- right_join(BBrankL, Cities, by = c("HOMETOWN","SABR"))
BBrankLC <- na.omit(BBrankLC)


BBrankL$label <- paste(sep = " ", BBrankL$RK, BBrankL$PLAYER, BBrankL$POS, BBrankL$HOMETOWN)

AggPlayers <- aggregate(PLAYER ~ clat, data = BBrankLC, paste, collapse = ",")
BBrankLC <- right_join(BBrankLC, AggPlayers, by="clat", all=T)
names(BBrankLC)[14] <- "PlayersInCity"
 
BBrankLC$PlayersInCity <- paste(sep = "<br/>", BBrankLC$PlayersInCity)

FBrankL <- right_join(FBrank, USAv, by="SABR", all=T)
FBrankL <- na.omit(FBrankL)

FBrankLC <- right_join(FBrankL, Cities, by = c("HOMETOWN","SABR"))
FBrankLC <- na.omit(FBrankLC)

AggFBPlayers <- aggregate(PLAYER ~ clat, data = FBrankLC, paste, collapse = ",")
FBrankLC <- right_join(FBrankLC, AggFBPlayers, by="clat", all=T)
names(FBrankLC)[16] <- "PlayersInCity"

Top 100 basketball players Home towns

Players from the same city will be grouped together

leaflet(BBrankLC) %>% addTiles() %>% addMarkers(~clong, ~clat, popup = ~BBrankLC$PlayersInCity)

Top 100 football players Home towns

Players from the same city will be grouped together

leaflet(FBrankLC) %>% addTiles() %>% addMarkers(~clong, ~clat, popup = ~FBrankLC$PlayersInCity)