Notes: Used last two playoffs due to difference in bubble. Jazz strongly influnce data due to 4 of 35 top pull up shooters.
Number of top 35 pull-up shooters by the round their team was eliminated in:
Comparison of β22 & β21 playoff usage leaders and β12 & β11 playoff usage leaders:
Players to shoot over 30% from above the arc:
Kevin Durant:
In β12 and β11 top pnr players (Parker, Westbrook, Rose) were not threats to knock down step back or pull up threes.
In β12 & β11 βShooting Guardsβ, like Kobe and Wade, attacked from wings while modern βshooting guardsβ attack from top of arc and use pnr more often.
library(tidyverse)
library(jsonlite)
library(janitor)
library(dplyr)
library(reactable)
library(reactablefmtr)
pbp_url <- "https://api.pbpstats.com/get-totals/nba?Season=2021-22,2020-21&SeasonType=Regular%2BSeason&Type=Player"
pbp_player_22_21 <- read_json(pbp_url)
player_22_21 <- pbp_player_22_21[["multi_row_table_data"]] %>%
bind_rows() %>%
clean_names()
pull_up <- player_22_21 %>%
select(name,
team_abbreviation,
minutes,
arc3pct_assisted,
arc3accuracy,
arc3fga,
usage) %>%
filter(arc3pct_assisted < .60,
arc3accuracy > .30,
minutes > 2500,
arc3fga > 750)
pl_win <- c( 15, 2, 11, 12, 16, 1, 2, 8, 8, 4, 2, 2)
cbind(pull_up, pl_win) %>% select(
name,
team_abbreviation,
arc3pct_assisted,
arc3accuracy,
pl_win
) %>%
mutate_at(vars(arc3pct_assisted,arc3accuracy), funs(round(.,4))) %>%
mutate(
Name = name,
Team = team_abbreviation,
'Arc 3pt%' = arc3accuracy,
'% of Arc 3s Assisted' = arc3pct_assisted,
'Playoff wins' = pl_win
) %>%
select(
Name,
Team,
'Arc 3pt%',
'% of Arc 3s Assisted',
'Playoff wins'
) %>%
reactable( theme = espn(),
pagination = FALSE) %>%
add_title( "Playoff wins for top 12 regular season pull-up shooters") %>%
add_subtitle("'22 & '21 seasons")
pull_up_big <- player_22_21 %>%
select(name,
team_abbreviation,
minutes,
arc3pct_assisted,
arc3accuracy,
arc3fga) %>%
filter(arc3pct_assisted < .70,
arc3accuracy > .30,
minutes > 2500,
arc3fga > 450)
pbp_url_pl <- "https://api.pbpstats.com/get-totals/nba?Season=2021-22,2020-21&SeasonType=Playoffs&Type=Player"
pbp_player_pl_22_21 <- read_json(pbp_url_pl)
player_pl_22_21 <- pbp_player_pl_22_21[["multi_row_table_data"]] %>%
bind_rows() %>%
clean_names()
pull_up_pl <- player_pl_22_21 %>%
select(name,
team_abbreviation,
minutes,
arc3pct_assisted,
arc3accuracy,
arc3fga,
usage) %>%
mutate( playoff_minutes = minutes,
playoff_arc3pct_assisted = arc3pct_assisted,
playoff_usage = usage)
right_join(pull_up, pull_up_pl, by = 'name') %>%
na.omit() %>%
select(name,
team_abbreviation.x,
arc3pct_assisted.x,
playoff_arc3pct_assisted,
usage.x,
playoff_usage) %>%
mutate( arc3pct_assisted_diff = arc3pct_assisted.x - playoff_arc3pct_assisted,
usage_diff = playoff_usage - usage.x,
team = team_abbreviation.x) %>%
select(name,
team,
arc3pct_assisted_diff,
usage_diff) %>%
mutate_at(vars(arc3pct_assisted_diff,usage_diff), funs(round(.,4))) %>%
reactable( theme = espn(),
pagination = FALSE) %>%
add_title( "Difference between regular season and playoff stats") %>%
add_subtitle("'22 & '21 seasons")
pbp_url_usage_22 <- "https://api.pbpstats.com/get-totals/nba?Season=2021-22,2020-21&SeasonType=Playoffs&Type=Player"
pbp_usage_22 <- read_json(pbp_url_usage_22)
usage_22 <- pbp_usage_22[["multi_row_table_data"]] %>%
bind_rows() %>%
clean_names()
usage_22 %>%
filter( minutes > 150,
usage > 31.21) %>%
select(name,
team_abbreviation,
usage,
arc3pct_assisted,
arc3accuracy,
arc3fga) %>%
mutate_at(vars(arc3pct_assisted,usage,arc3accuracy), funs(round(.,4))) %>%
mutate( '% of Arc 3s Assisted' = arc3pct_assisted,
'Arc 3pt%' = arc3accuracy,
'Arc 3 fga' = arc3fga,
team = team_abbreviation) %>%
select(name,
team,
usage,
'% of Arc 3s Assisted',
'Arc 3pt%',
'Arc 3 fga') %>%
reactable( theme = espn()) %>%
add_title("Top 10 playoff usage players") %>%
add_subtitle("'22 & '21 playoffs")
pbp_url_usage_12 <- "https://api.pbpstats.com/get-totals/nba?Season=2011-12,2010-11&SeasonType=Playoffs&Type=Player"
pbp_usage_12 <- read_json(pbp_url_usage_12)
usage_12 <- pbp_usage_12[["multi_row_table_data"]] %>%
bind_rows() %>%
clean_names()
usage_12 %>%
filter( minutes > 150,
usage > 28.6) %>%
select(name,
team_abbreviation,
usage,
arc3pct_assisted,
arc3accuracy,
arc3fga) %>%
mutate_at(vars(arc3pct_assisted,usage,arc3accuracy), funs(round(.,4))) %>%
mutate( '% of Arc 3s Assisted' = arc3pct_assisted,
'Arc 3pt%' = arc3accuracy,
'Arc 3 fga' = arc3fga,
team = team_abbreviation) %>%
select(name,
team,
usage,
'% of Arc 3s Assisted',
'Arc 3pt%',
'Arc 3 fga') %>%
reactable( theme = espn()) %>%
add_title("Top 10 playoff usage players") %>%
add_subtitle("'12 & '11 seasons")