Plots expected points of shots as a function of the distance from the basket (default) or another variable
expectedpts(
data,
var = "shot_distance",
players = NULL,
bw = 10,
period.length = 12,
palette = gg_color_hue,
team = TRUE,
col.team = "gray",
col.hline = "black",
xlab = NULL,
x.range = "auto",
title = NULL,
legend = TRUE
)
a data frame whose rows are field shots and with the following columns: points
, event_type
, player
(only if the players
argument is not NULL
) and at least one of playlength
, periodTime
, totalTime
, shot_distance
(the column specified in var
, see Details).
character, a string giving the name of the numerical variable according to which the expected points are estimated; available options "playlength"
, "periodTime"
, "totalTime"
, "shot_distance"
(default).
subset of players to be displayed (optional; it can be used only if the player
column is present in data
).
numeric, smoothing bandwidth of the kernel density estimator (see ksmooth
).
numeric, the length of a quarter in minutes (default: 12 minutes as in NBA).
color palette.
logical; if TRUE
, draws the expected points for all the shots in data.
character, color of the expected points line for all the shots in data (default "gray"
).
character, color of the dashed horizontal line (default "black"
) denoting the expected points for all the shots in data, not conditional to the variable in the x-axis.
character, x-axis label.
numerical vector or character; available options: NULL
(x-axis range defined by ggplot2
, the default), "auto"
(internally defined x-axis range), or a 2-component numerical vector (user-defined x-axis range).
character, plot title.
logical, if TRUE
, color legend is displayed (only when players
is not NULL
).
A ggplot2
plot
The data
data frame could also be a play-by-play dataset provided that rows corresponding to events different from field shots have values different from "shot"
or "miss"
in the even_type
variable.
Required columns:
event_type
, a factor with the following levels: "shot"
for made field shots and "miss"
for missed field shots
player
, a factor with the name of the player who made the shot
points
, a numeric variable (integer) with the points scored by made shots and 0
for missed shots
playlength
, a numeric variable with time between the shot and the immediately preceding event
periodTime
, a numeric variable with seconds played in the quarter when the shot is attempted
totalTime
, a numeric variable with seconds played in the whole match when the shot is attempted
shot_distance
, a numeric variable with the distance of the shooting player from the basket (in feet)
P. Zuccolotto and M. Manisera (2020) Basketball Data Science: With Applications in R. CRC Press.
# NOT RUN {
PbP <- PbPmanipulation(PbP.BDB)
PbP.GSW <- subset(PbP, team=="GSW" & !is.na(shot_distance))
plrys <- c("Stephen Curry","Kevin Durant")
expectedpts(data=PbP.GSW, bw=10, players=plrys, col.team='dodgerblue',
palette=colorRampPalette(c("gray","black")), col.hline="red")
# }
Run the code above in your browser using DataLab