Skip to content

Instantly share code, notes, and snippets.

@jonrobinson2
Created May 6, 2016 00:54
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jonrobinson2/0654777cb1abda35efa5d7ed11e336dd to your computer and use it in GitHub Desktop.
Save jonrobinson2/0654777cb1abda35efa5d7ed11e336dd to your computer and use it in GitHub Desktop.
Quick and Dirty not too pretty season stats
require(httr)
require(jsonlite)
require(ggplot2)
require(gridExtra)
require(directlabels)
cavs_reg=fromJSON('http://stats.nba.com/stats/teamgamelog?LeagueID=00&Season=2015-16&SeasonType=Regular+Season&TeamID=1610612739')
cavs_playoffs=fromJSON('http://stats.nba.com/stats/teamgamelog?LeagueID=00&Season=2015-16&SeasonType=Playoffs&TeamID=1610612739')
cavs=data.frame(cavs_reg$resultSets$rowSet)
names(cavs)=unlist(cavs_reg$resultSets$headers)
cavs$type='Regular Season'
cavs$DATE_ID=nrow(cavs):1
cavs=sqldf::sqldf('select * from cavs order by DATE_ID asc')
cavs$CUM_FG3M=cumsum(as.numeric(as.character(cavs$FG3M)))
cavs$CUM_FG3A=cumsum(as.numeric(as.character(cavs$FG3A)))
.tmp=data.frame(cavs_playoffs$resultSets$rowSet)
names(.tmp)=unlist(cavs_playoffs$resultSets$headers)
.tmp$type='Playoffs'
.tmp$DATE_ID=nrow(.tmp):1
.tmp=sqldf::sqldf('select * from ".tmp" order by DATE_ID asc')
.tmp$CUM_FG3M=cumsum(as.numeric(as.character(.tmp$FG3M)))
.tmp$CUM_FG3A=cumsum(as.numeric(as.character(.tmp$FG3A)))
cavs=rbind(cavs,.tmp)
for(i in names(cavs)){
tt=as.character(cavs[,i])
tt=as.numeric(tt)
warn=ifelse(all(is.na(tt))==TRUE,"warning","OK")
if(warn=='OK'){
cavs[,i]=as.numeric(tt)
}
rm(tt, warn)
}
cavs$MONTH=substr(as.character(cavs$GAME_DATE),1,3)
for(mo in unique(cavs$MONTH)){
cavs$CUM_FG3M_MONTH[cavs$MONTH==mo]=cumsum(as.numeric(as.character(cavs$FG3M[cavs$MONTH==mo])))
cavs$CUM_FG3A_MONTH[cavs$MONTH==mo]=cumsum(as.numeric(as.character(cavs$FG3A[cavs$MONTH==mo])))
cavs$CUM_DATE[cavs$MONTH==mo]=1:nrow(cavs[cavs$MONTH==mo,])
}
cavs$MONTH=factor(cavs$MONTH, levels = c('OCT','NOV','DEC','JAN','FEB','MAR','APR','MAY'))
threeptpct=ggplot(cavs, aes(CUM_DATE, CUM_FG3M_MONTH/CUM_FG3A_MONTH)) +
geom_line(aes(color=MONTH), size=2) +
geom_point(aes(color=MONTH, size=CUM_FG3M_MONTH)) +
geom_dl(aes(label=MONTH, color=MONTH), method='last.points') +
theme_jr +
scale_color_brewer(palette='Dark2', guide=FALSE) +
scale_size(guide=FALSE) +
ylab('Cumulative 3 Point Percentage as a Team') +
xlab('Games in a Month') +
ggtitle('Cavs 3 Point Percentage By Month \n Per NBA.com')
threeptmd=ggplot(cavs, aes(CUM_DATE, CUM_FG3M_MONTH)) +
geom_line(aes(color=MONTH), size=2) +
geom_point(aes(color=MONTH, size=CUM_FG3M_MONTH)) +
geom_dl(aes(label=MONTH, color=MONTH), method='last.points') +
theme_jr +
scale_color_brewer(palette='Dark2', guide=FALSE) +
scale_size(guide=FALSE) +
ylab('Cumulative 3 Pointers Made (Increments of 25)') +
xlab('Games in a Month') +
ggtitle('Cavs 3 Point Pace By Month \n Per NBA.com')
grid.arrange(threeptmd, threeptpct, nrow=1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment