runGitHub("toddwschneider")
runGitHub("ballr")
??download.file
??runGitHub
download.file(https://github.com//toddwschneider/archive/master.tar.gz)
runGitHub("ballr")
install.packages(packages, repos = "https://cran.rstudio.com/")
library(shiny)
install.packages(packages, repos = "https://cran.rstudio.com/")
library(shiny)
library(shiny)
runGitHub("ballr", "toddwschneider")
runGitHub("ballr")
install.packages("shiny", lib="C:/Program Files/R/R-3.4.1/library")
runGitHub("ballr", "toddwschneider")
library(shiny)
runGitHub("ballr", "toddwschneider")
listofpackages <- c("lrmest")
for (j in listofpackages){
if(sum(installed.packages()[, 1] == j) == 0) {
install.packages(j)
}
library(j, character.only = T)
}
listofpackages <- c("lrmest")
for (j in listofpackages){
if(sum(installed.packages()[, 1] == j) == 0) {
install.packages(j)
}
library(j, character.only = T)
}
install.packages("psych", lib="C:/Program Files/R/R-3.4.1/library")
install.packages("lrmest", lib="C:/Program Files/R/R-3.4.1/library")
# load packages
listofpackages <- c("lrmest")
for (j in listofpackages){
if(sum(installed.packages()[, 1] == j) == 0) {
install.packages(j)
}
library(j, character.only = T)
}
library(data.table)
library(scales)
library(ggplot2)
link <- "https://raw.githubusercontent.com/DavZim/Efficient_Frontier/master/data/fin_data.csv"
dt <- fread(link)
dt[, date := as.Date(date)]
# create indexed values
dt[, idx_price := price/price[1], by = ticker]
# plot the indexed values
ggplot(dt, aes(x = date, y = idx_price, color = ticker)) +
geom_line() +
# Miscellaneous Formatting
theme_bw() + ggtitle("Price Developments") +
xlab("Date") + ylab("Price\n(Indexed 2000 = 1)") +
scale_color_discrete(name = "Company")
dt[, ret := price / shift(price, 1) - 1, by = ticker]
# summary table
# take only non-na values
tab <- dt[!is.na(ret), .(ticker, ret)]
# calculate the expected returns (historical mean of returns) and volatility (standard deviation of returns)
tab <- tab[, .(er = round(mean(ret), 4),
sd = round(sd(ret), 4)),
by = "ticker"]
tab
ggplot(tab, aes(x = sd, y = er, color = ticker)) +
geom_point(size = 5) +
# Miscellaneous Formatting
theme_bw() + ggtitle("Risk-Return Tradeoff") +
xlab("Volatility") + ylab("Expected Returns") +
scale_y_continuous(label = percent, limits = c(0, 0.03)) +
scale_x_continuous(label = percent, limits = c(0, 0.1))
# load the data
link <- "https://raw.githubusercontent.com/DavZim/Efficient_Frontier/master/data/mult_assets.csv"
df <- data.table(read.csv(link))
df_table <- melt(df)[, .(mean = mean(value), sd = sd(value)), by = variable]
er_x <- mean(df$x)
er_y <- mean(df$y)
er_z <- mean(df$z)
sd_x <- sd(df$x)
sd_y <- sd(df$y)
sd_z <- sd(df$z)
cov_xy <- cov(df$x, df$y)
cov_xz <- cov(df$x, df$z)
cov_yz <- cov(df$y, df$z)
# two assets
two_assets_seq <- seq(from = 0, to = 1, length.out = 1000)
two <- data.table(wx = two_assets_seq,
wy = 1 - two_assets_seq)
two[, ':=' (er_p = wx * er_x + wy * er_y,
sd_p = sqrt(wx^2 * sd_x^2 +
wy^2 * sd_y^2 +
2 * wx * (1 - wx) * cov_xy))]
plot_two <- ggplot() +
geom_point(data = two, aes(x = sd_p, y = er_p, color = wx)) +
geom_point(data = df_table[variable != "z"],
aes(x = sd, y = mean), color = "red", size = 3, shape = 18) +
theme_bw() + ggtitle("Possible Portfolios with Two Risky Assets") +
xlab("Volatility") + ylab("Expected Returns") +
scale_y_continuous(label = percent, limits = c(0, max(two$er_p) * 1.2)) +
scale_x_continuous(label = percent, limits = c(0, max(two$sd_p) * 1.2)) +
scale_color_continuous(name = expression(omega[x]), labels = percent)
ggsave(plot_two, file = "two_assets.png", scale = 1, dpi = 600)
# three assets
three_assets_seq <- seq(from = 0, to = 1, length.out = 1000)
three <- data.table(wx = rep(three_assets_seq, each = length(three_assets_seq)),
wy = rep(three_assets_seq, length(three_assets_seq)))
three[, wz := 1 - wx - wy]
three[, ':=' (er_p = wx * er_x + wy * er_y + wz * er_z,
sd_p = sqrt(wx^2 * sd_x^2 +
wy^2 * sd_y^2 +
wz^2 * sd_z^2 +
2 * wx * wy * cov_xy +
2 * wx * wz * cov_xz +
2 * wy * wz * cov_yz))]
three <- three[wx >= 0 & wy >= 0 & wz >= 0]
plot_three <- ggplot() +
geom_point(data = three, aes(x = sd_p, y = er_p, color = wx - wz)) +
geom_point(data = df_table, aes(x = sd, y = mean), color = "red", size = 3, shape = 18) +
theme_bw() + ggtitle("Possible Portfolios with Three Risky Assets") +
xlab("Volatility") + ylab("Expected Returns") +
scale_y_continuous(label = percent, limits = c(0, max(three$er_p) * 1.2)) +
scale_x_continuous(label = percent, limits = c(0, max(three$sd_p) * 1.2)) +
scale_color_gradientn(colors = c("red", "blue", "yellow"),
name = expression(omega[x] - omega[z]), labels = percent)
ggsave(plot_three, file = "three_assets.png", scale = 1, dpi = 600)
plot_three
options(width = 70, digits=4)
listofpackages <- c("ellipse","PerformanceAnalytics","zoo")
for (j in listofpackages){
if(sum(installed.packages()[, 1] == j) == 0) {
install.packages(j)
}
library(j, character.only = T)
}
install.packages("fEcofin", repos="http://R-Forge.R-project.org")
# load required packages
library(fEcofin)                # various data sets
berndt.df = berndtInvest[, -1]
rownames(berndt.df) = as.character(berndtInvest[, 1])
colnames(berndt.df)
BerndtEquityData = as.matrix(berndt.df[, c(-10, -17)])
market.mat = as.matrix(berndt.df[,10, drop=F])
n.obs = nrow(BerndtEquityData)
X.mat = cbind(rep(1,n.obs),market.mat)
colnames(X.mat)[1] = "intercept"
XX.mat = crossprod(X.mat)
G.hat = solve(XX.mat)%*%crossprod(X.mat,BerndtEquityData)
# can also use solve(qr(X.mat), returns.mat)
beta.hat = G.hat[2,]
E.hat = returns.mat - X.mat%*%G.hat
diagD.hat = diag(crossprod(E.hat)/(n.obs-2))
# compute R2 values from multivariate regression
sumSquares = apply(returns.mat, 2, function(x) {sum( (x - mean(x))^2 )})
R.square = 1 - (n.obs-2)*diagD.hat/sumSquares
returns.mat = t(BerndtEquityData)
E.hat = returns.mat - X.mat%*%G.hat
diagD.hat = diag(crossprod(E.hat)/(n.obs-2))
library(ellipse)
library(fEcofin)                # various data sets
library(PerformanceAnalytics)   # performance and risk analysis functions
library(zoo)
download.packages(fEcofin)
data = berndtInvest
BerdtEquityData = data
assets_returns = t(returns.mat)[,c("TECH", "OIL", "OTHER")]
assets_errors = E.hat[,c("TECH", "OIL", "OTHER")]
cor(assets_returns)
cor(assets_errors)
# load Berndt Data
data(berndtInvest)
str(berndtInvest)
berndt.df = berndtInvest[, -1]
rownames(berndt.df) = as.character(berndtInvest[, 1])
colnames(berndt.df)
returns.mat = as.matrix(berndt.df[, c(-10, -17)])
market.mat = as.matrix(berndt.df[,10, drop=F])
n.obs = nrow(returns.mat)
# Adding the constant to MKT return
X.mat = cbind(rep(1,n.obs),market.mat)
colnames(X.mat)[1] = "intercept"
XX.mat = crossprod(X.mat)
# multivariate least squares
G.hat = solve(XX.mat)%*%crossprod(X.mat,returns.mat)
# can also use solve(qr(X.mat), returns.mat)
beta.hat = G.hat[2,]
#E are errors, diagD should be std of error
E.hat = returns.mat - X.mat%*%G.hat
diagD.hat = diag(crossprod(E.hat)/(n.obs-2))
# compute R2 values from multivariate regression
sumSquares = apply(returns.mat, 2, function(x) {sum( (x - mean(x))^2 )})
R.square = 1 - (n.obs-2)*diagD.hat/sumSquares
R.square
# factorModels.r
rm(list=ls())
# set output options
options(width = 70, digits=4)
# load required packages
library(ellipse)
library(fEcofin)                # various data sets
library(PerformanceAnalytics)   # performance and risk analysis functions
library(zoo)
################################################################################
# Macroeconomic Factor Models - Quesion I
################################################################################
##
## Single Index Model
##
# load Berndt Data
data(berndtInvest)
str(berndtInvest)
# create data frame with dates as rownames
berndt.df = berndtInvest[, -1]
rownames(berndt.df) = as.character(berndtInvest[, 1])
colnames(berndt.df)
##
## use multivariate regression and matrix algebra
##
## returns allows to remove column 10 (MKT) and 17 (RFR)
## market berndt.df[,10, drop=F] keep 10 only => return of MKT
returns.mat = as.matrix(berndt.df[, c(-10, -17)])
market.mat = as.matrix(berndt.df[,10, drop=F])
n.obs = nrow(returns.mat)
# Adding the constant to MKT return
X.mat = cbind(rep(1,n.obs),market.mat)
colnames(X.mat)[1] = "intercept"
XX.mat = crossprod(X.mat)
# multivariate least squares
G.hat = solve(XX.mat)%*%crossprod(X.mat,returns.mat)
# can also use solve(qr(X.mat), returns.mat)
beta.hat = G.hat[2,]
#E are errors, diagD should be std of error
E.hat = returns.mat - X.mat%*%G.hat
diagD.hat = diag(crossprod(E.hat)/(n.obs-2))
# compute R2 values from multivariate regression
sumSquares = apply(returns.mat, 2, function(x) {sum( (x - mean(x))^2 )})
R.square = 1 - (n.obs-2)*diagD.hat/sumSquares
# print and plot results
cbind(beta.hat, diagD.hat, R.square)
par(mfrow=c(1,2))
barplot(beta.hat, horiz=T, main="Beta values", col="blue", cex.names = 0.75, las=1)
barplot(R.square, horiz=T, main="R-square values", col="blue", cex.names = 0.75, las=1)
par(mfrow=c(1,1))
# compute single index model covariance/correlation matrices HEREEEEE
cov.si = as.numeric(var(market.mat))*beta.hat[c("CONTIL","IBM","TEXACO")]%*%t(beta.hat[c("CONTIL","IBM","TEXACO")]) + diag(diagD.hat[c("CONTIL","IBM","TEXACO")])
cor.si = cov2cor(cov.si)
# plot correlations using plotcorr() from ellipse package
rownames(cor.si) = colnames(cor.si)
ord <- order(cor.si[1,])
ordered.cor.si <- cor.si[ord, ord]
plotcorr(ordered.cor.si, col=cm.colors(11)[5*ordered.cor.si + 6])
# compare to sample correlation matrix
cor.sample = cor(returns.mat[,c("CONTIL","IBM","TEXACO")])
ord <- order(cor.sample[1,])
ordered.cor.sample <- cor.sample[ord, ord]
plotcorr(ordered.cor.sample, col=cm.colors(11)[5*ordered.cor.sample + 6])
cov.specific = cor(E.hat[,c("CONTIL","IBM","TEXACO")])
cov.specific
data(berndtInvest)
str(berndtInvest)
IBM = t(returns.mat)[,c("IBM")]
assets_returns = t(returns.mat)[,c("CONTIL", "IBM", "TEXACO")]
assets_errors = E.hat[,c("CONTIL", "IBM", "TEXACO")]
cor(assets_returns)
cor(assets_errors)
m=c(1,1,1,0,0,0,0,0,0,1,1,1)
dim(m)=c(6,2)
m
q=tr(m)%*%m
q=t(m)%*%m
q
setwd("/Users/alessandro/Desktop")
# setwd("/Users/alessandro/Desktop")
# install and load the relevant packages
# packages used
listofpackages <- c("lrmest", "dplyr","assertthat","bindrcpp","glue","pkgconfig","utf8","cli","ellipse","reshape2","ggplot2","dygraphs","aod")
for (j in listofpackages){
if(sum(installed.packages()[, 1] == j) == 0) {
install.packages(j)
}
library(j, character.only = T)
}
NBAdata=read.csv("C:/Users/favero/Dropbox/exam/SPORTMAN/R/data_L/Teams_overall.csv", header = T, stringsAsFactors = F, sep = ",")
NBAdata$FGMISS=NBAdata$FGA-NBAdata$FG
NBAdata$FTMISS=NBAdata$FTA-NBAdata$FT
NBAdata$OFGMISS=NBAdata$OFGA-NBAdata$OFG
NBAdata$OFTMISS=NBAdata$OFTA-NBAdata$OFT
NBAdata$MISS=NBAdata$FGMISS+NBAdata$FTMISS
NBAdata$OMISS=NBAdata$OFGMISS+NBAdata$OFTMISS
NBAdata$W.=NBAdata$W/(NBAdata$W+NBAdata$L)
NBAdata$eff_NBA=NBAdata$PTS+NBAdata$TRB+NBAdata$STL+NBAdata$BLK-NBAdata$MISS-NBAdata$TOV
NBAdata$eff_O_NBA=NBAdata$OPTS+NBAdata$OTRB+NBAdata$OSTL+NBAdata$OBLK-NBAdata$OMISS-NBAdata$OTOV
NBAdata$eff_NBA=NBAdata$PTS+NBAdata$TRB+NBAdata$AST+NBAdata$STL+NBAdata$BLK-NBAdata$FGMISS-NBAdata$FTMISS-NBAdata$TOV
NBAdata$eff_O_NBA=NBAdata$OPTS+NBAdata$OTRB+NBAdata$OAST+NBAdata$OSTL+NBAdata$OBLK-NBAdata$OFGMISS+NBAdata$OFTMISS-NBAdata$OTOV
reg9306 = subset(NBAdata,(Season<2006 & Season>1993 & Season!=1999))
reg_NBAeff = lm(reg9306$W ~ reg9306$eff_NBA + reg9306$eff_O_NBA)
summary(reg_NBAeff)
NBAdata$empl_poss=NBAdata$FGA + 0.44*NBAdata$FTA + NBAdata$TOV - NBAdata$ORB
NBAdata$ptsxgame=NBAdata$PTS/NBAdata$G
NBAdata$ptsxposs=NBAdata$PTS/NBAdata$empl_poss
NBAdata$FGAD=NBAdata$FGA-NBAdata$OFG-NBAdata$OTOV-NBAdata$TRB+NBAdata$TOV
NBAdata$TEAM_R=NBAdata$FGAD-0.45*NBAdata$OFT+0.45*NBAdata$FTA
NBAdata$acq_poss=NBAdata$OTOV + NBAdata$DRB+NBAdata$TEAM_R+ NBAdata$OFG + 0.45*NBAdata$OFT
NBAdata$ptsaxgame=NBAdata$OPTS/NBAdata$G
NBAdata$ptsaxposs=NBAdata$OPTS/NBAdata$acq_poss
NBAdata$eff=(NBAdata$ptsxposs-NBAdata$ptsaxposs)
reg9306 = subset(NBAdata,(Season<2006 & Season>1993 & Season!=1999))
reg_BaseLineeff = lm(reg9306$W ~ reg9306$ptsxposs + reg9306$ptsaxposs)
summary(reg_eff)
# setwd("/Users/alessandro/Desktop")
# install and load the relevant packages
# packages used
listofpackages <- c("lrmest", "dplyr","assertthat","bindrcpp","glue","pkgconfig","utf8","cli","ellipse","reshape2","ggplot2","dygraphs","aod")
for (j in listofpackages){
if(sum(installed.packages()[, 1] == j) == 0) {
install.packages(j)
}
library(j, character.only = T)
}
NBAdata=read.csv("C:/Users/favero/Dropbox/exam/SPORTMAN/R/data_L/Teams_overall.csv", header = T, stringsAsFactors = F, sep = ",")
NBAdata$FGMISS=NBAdata$FGA-NBAdata$FG
NBAdata$FTMISS=NBAdata$FTA-NBAdata$FT
NBAdata$OFGMISS=NBAdata$OFGA-NBAdata$OFG
NBAdata$OFTMISS=NBAdata$OFTA-NBAdata$OFT
NBAdata$MISS=NBAdata$FGMISS+NBAdata$FTMISS
NBAdata$OMISS=NBAdata$OFGMISS+NBAdata$OFTMISS
NBAdata$W.=NBAdata$W/(NBAdata$W+NBAdata$L)
NBAdata$eff_NBA=NBAdata$PTS+NBAdata$TRB+NBAdata$STL+NBAdata$BLK-NBAdata$MISS-NBAdata$TOV
NBAdata$eff_O_NBA=NBAdata$OPTS+NBAdata$OTRB+NBAdata$OSTL+NBAdata$OBLK-NBAdata$OMISS-NBAdata$OTOV
NBAdata$eff_NBA=NBAdata$PTS+NBAdata$TRB+NBAdata$AST+NBAdata$STL+NBAdata$BLK-NBAdata$FGMISS-NBAdata$FTMISS-NBAdata$TOV
NBAdata$eff_O_NBA=NBAdata$OPTS+NBAdata$OTRB+NBAdata$OAST+NBAdata$OSTL+NBAdata$OBLK-NBAdata$OFGMISS+NBAdata$OFTMISS-NBAdata$OTOV
reg9306 = subset(NBAdata,(Season<2006 & Season>1993 & Season!=1999))
reg_NBAeff = lm(reg9306$W ~ reg9306$eff_NBA + reg9306$eff_O_NBA)
summary(reg_NBAeff)
NBAdata$empl_poss=NBAdata$FGA + 0.44*NBAdata$FTA + NBAdata$TOV - NBAdata$ORB
NBAdata$ptsxgame=NBAdata$PTS/NBAdata$G
NBAdata$ptsxposs=NBAdata$PTS/NBAdata$empl_poss
NBAdata$FGAD=NBAdata$FGA-NBAdata$OFG-NBAdata$OTOV-NBAdata$TRB+NBAdata$TOV
NBAdata$TEAM_R=NBAdata$FGAD-0.45*NBAdata$OFT+0.45*NBAdata$FTA
NBAdata$acq_poss=NBAdata$OTOV + NBAdata$DRB+NBAdata$TEAM_R+ NBAdata$OFG + 0.45*NBAdata$OFT
NBAdata$ptsaxgame=NBAdata$OPTS/NBAdata$G
NBAdata$ptsaxposs=NBAdata$OPTS/NBAdata$acq_poss
NBAdata$eff=(NBAdata$ptsxposs-NBAdata$ptsaxposs)
reg9306 = subset(NBAdata,(Season<2006 & Season>1993 & Season!=1999))
reg_BaseLineeff = lm(reg9306$W ~ reg9306$ptsxposs + reg9306$ptsaxposs)
summary(reg_BaseLineeff)
reg_eff_2 = lm(reg9306$W ~ reg9306$eff)
summary(reg_eff_2)
team.effect = function(x)
{dummy.team = ifelse(reg9306$Team==x,1,0)
reg_eff_team = lm(reg9306$W~ reg9306$eff + dummy.team)
summary(reg_eff_team)
wald.test(vcov(reg_eff_team), coef(reg_eff_team), H0 = c(0), df = 313,
L = matrix(c(0, 0, 1), ncol=3), verbose = T)}
season.effect = function(y)
{dummy.season = ifelse(reg9306$Season==y,1,0)
reg_eff_season = lm(reg9306$W ~ reg9306$eff + dummy.season)
summary(reg_eff_season)
wald.test(vcov(reg_eff_season), coef(reg_eff_season), H0 = c(0), df = 313,
L = matrix(c(0, 0, 1), ncol=3), verbose = T)}
season.team.effect = function(x,y)
{dummy.team = ifelse(reg9306$Team==x,1,0)
dummy.season = ifelse(reg9306$Season==y,1,0)
reg_eff_season.team = lm(reg9306$W~ reg9306$eff + dummy.team + dummy.season)
summary(reg_eff_season.team)
wald.test(vcov(reg_eff_season.team), coef(reg_eff_season.team), H0 = c(0,0), df = 312,
L = matrix(c(0,0, 0, 0,
1,0,0,1), ncol=4), verbose = T)}
team.effect("Boston Celtics")
season.effect(2005)
season.team.effect("Boston Celtics", 2005)
reg9306$Season_dum=as.character(reg9306$Season)
plot(x = reg9306$Season, y = reg9306$W, main = "WINS", ylab = "TR",ylim = c(0,85), xlab = "Seasons",col = "red")
library(shiny)
runGitHub("ballr", "toddwschneider")
rm(list=ls()) #Removes all items in Environment!
listofpackages <- c("tidyaverse","showtext","hexbin")
for (j in listofpackages){
if(sum(installed.packages()[, 1] == j) == 0) {
install.packages(j)
}
library(j, character.only = T)
} # this routine install packages required if not in library
rm(list=ls())
listofpackages <- c("tidyaverse","showtext","hexbin")
for (j in listofpackages){
if(sum(installed.packages()[, 1] == j) == 0) {
install.packages(j)
}
library(j, character.only = T)
} # this routine install packages required if not in library
install.packages("knitr")
# running this will produce the shiny app locally
# packages used
listofpackages <- c("shiny", "ggplot2", "hexbin", "dplyr", "httr", "jsonlite")
for (j in listofpackages){
if(sum(installed.packages()[, 1] == j) == 0) {
install.packages(j)
}
library(j, character.only = T)
}
# running shiny
#runApp()
runGitHub("ballr", "toddwschneider")
View(players_data)
#clear the environment
rm(list=ls())
#setwd(path)
setwd(dirname(rstudioapi::getActiveDocumentContext()$path))
listofpackages <- c("tidyverse","showtext","hexbin","ggplot2","dplyr","httr","jsonlite","akima","vroom")
for (j in listofpackages){
if(sum(installed.packages()[, 1] == j) == 0) {
install.packages(j)
}
library(j, character.only = T)
}
install.packages("ballr")
#help(package="ballr")
font_add_google("Rokkitt", "rokkitt")
library("ballr")
help(package="ballr")
install.packages("toddwschneider")
install.packages("devtools")
library(devtools)
install_github("toddwschneider/ballr")
#source("helpers.R")
source("plot_court.R")
source("helpers.R")
source("plot_court.R")
source("scatter_chart.R")
source('C:/Users/favero/Dropbox/exam/SPORTMAN/R/basket/mapshots.R')
source("heatmap_chart.R")
source("hex_chart.R")
source("scatter_chart.R")
source("server.R")
source("fetchshots.R")
source("fetch_shots.R")
gg_court = make_court()
gg_court
source("helpers.R")
#clear the environment
rm(list=ls())
#setwd(path)
setwd(dirname(rstudioapi::getActiveDocumentContext()$path))
listofpackages <- c("tidyverse","showtext","hexbin","ggplot2","dplyr","httr","jsonlite","akima","vroom")
for (j in listofpackages){
if(sum(installed.packages()[, 1] == j) == 0) {
install.packages(j)
}
library(j, character.only = T)
}
source("helpers.R")
gg_court = make_court()
gg_court
font_add_google("Rokkitt", "rokkitt")
showtext_auto()
col_scheme <- c("firebrick4","darkorange2","gold1",
"chartreuse4","cadetblue2","darkorchid4")
p <- gg_court()+
geom_point(data = scatter_shots,
aes(loc_x,loc_y,col = shot_distance),size = 0.1)+
scale_color_gradientn(colours = col_scheme,breaks = c(0,30),limits = c(0,30),
name = "SHOT DISTANCE IN FEET")+
guides(colour = guide_colourbar(barwidth = 11, barheight = 0.8,ticks = F,
title.position = "top",title.hjust = 0.5))+
labs(title = "NBA SHOT LOCATIONS\n2014-15")+
theme(plot.title = element_text(hjust=0.5,size = 32,colour="grey45",
family="rokkitt",face = "bold"),
legend.position = "bottom",legend.justification = c(0.88,0),
legend.text = element_text(size=14,colour = "grey45",family = "rokkitt"),
legend.title = element_text(size=13,colour = "grey45",family = "rokkitt"),
legend.box.margin = margin(c(-50,0,3,0)),
plot.margin = margin(3,3,3,3, unit = "pt"))
p <- make_court()+
geom_point(data = scatter_shots,
aes(loc_x,loc_y,col = shot_distance),size = 0.1)+
scale_color_gradientn(colours = col_scheme,breaks = c(0,30),limits = c(0,30),
name = "SHOT DISTANCE IN FEET")+
guides(colour = guide_colourbar(barwidth = 11, barheight = 0.8,ticks = F,
title.position = "top",title.hjust = 0.5))+
labs(title = "NBA SHOT LOCATIONS\n2014-15")+
theme(plot.title = element_text(hjust=0.5,size = 32,colour="grey45",
family="rokkitt",face = "bold"),
legend.position = "bottom",legend.justification = c(0.88,0),
legend.text = element_text(size=14,colour = "grey45",family = "rokkitt"),
legend.title = element_text(size=13,colour = "grey45",family = "rokkitt"),
legend.box.margin = margin(c(-50,0,3,0)),
plot.margin = margin(3,3,3,3, unit = "pt"))
rm(list=ls())
#setwd(path)
setwd(dirname(rstudioapi::getActiveDocumentContext()$path))
listofpackages <- c("tidyverse","showtext","hexbin","ggplot2","dplyr","httr","jsonlite","akima","vroom")
for (j in listofpackages){
if(sum(installed.packages()[, 1] == j) == 0) {
install.packages(j)
}
library(j, character.only = T)
}
source("helpers.R")
gg_court = make_court()
gg_court
install.packages("modelr")
library("magrittr")
for (j in listofpackages){
if(sum(installed.packages()[, 1] == j) == 0) {
install.packages(j)
}
library(j, character.only = T)
}
source("helpers.R")
gg_court = make_court()
gg_court
