One of my favorite things in the world (except for one particular night this March) is watching my Virginia Cavaliers play basketball. I’m particularly excited about this year’s team, which I think is one of the deepest in recent memory and is going to be highly motivated all season coming off of last year’s disappointing finish against UMBC. I’ll leave the detailed analysis of their performance to the professionals over at Streaking the Lawn, but wanted to share a bit of work I put together on our most important returning players.
The NCAA publishes a large data set for college basketball over at Google Cloud Platform, which includes everything from game scores to mascots to tournament standings. One of the most interesting dataframes it includes is a possession-by-possession log of game activity, which includes shot locations and results. Having seen some very cool shot chart diagrams online while reading about basketball, I thought it would be fun to get a custom breakdown for my Hoos.
Unfortunately, the NCAA dataset only has data from the 2017-2018 season as of now, and has not been updated with data from the current season. With this in mind, I decided to pull the numbers for each of Virginia’s returning players who played notable minutes last year, and have these shot charts help serve as a preview for the 2018-2019 season.
Within BigQuery, I hit the
mbb_pbp_sr table to fetch data on every play made by UVA last season. I then imported the CSV of that data into R, and began to manipulate the data. Leveraging Todd Schneider’s amazing interactive shot charts tool for NBA and NCAA, I started working on turning the play-by-play data into cleaned shot charts. I ended up pulling Todd’s logic for drawing the court and hexagons out of his Github repository, and merging it with my existing efforts on short charting. While his application is remarkably well designed, it is intended to function as a live Shiny application and also work for all of the teams in NBA and NCAA basketball. Given that I just wanteded to build charts for my UVA boys, I streamlined the charting workflow down to the creation of high-quality charts of the following types:
- Made and Missed Shot Scatterplot
- Field Goal Attempts Heatmap
- Hex-Binned Plots of:
- Field Goal Percentage
- Field Goal Percentage relative to the team average
- Points per Shot
With that in mind, I went to work building and saving charts for the following players:
- De’Andre Hunter
- Ty Jerome
- Kyle Guy
- Jack Salt
- Mamadi Diakite
- Marco Anthony
- Jay Huff
It’s fascinating to look at efficiency and volume across the court by player and role on the team. Points per Shot is my favorite chart, because it conveys the truest value of both shot selection (dunks + threes) and efficiency, but all are useful in their own ways! I’ve ended up including Points per Shot, Relative Field Goal Percentage, and a Scatter plot for each player. Take a look below, and hope you enjoy.