Visualising NBA shot charts in Tableau

In my last post I produced some NBA shot charts in R using data scraped from stats.nba.com and ggplot2. This time I extracted all shot location data available for 490 players and linked it to a Tableau dashboard.

The first dashboard shows each shot attempted during the 2014-15 NBA Regular Season. On the right, it is possible to select team, player, shot type, shot zone and shot range. The table above the chart is also updated in line with the filter selection (click on the image to open the dashboard on a new window). Continue reading

How to create NBA shot charts in R

A while ago I found this fantastic post about NBA shot charts built in Python. Since my Python skills are quite basic I decided to reproduce such charts in R using data scraped from the internet and ggplot2.

Getting the Data

First we need the shot data from stats.nba.com. This blog post from Greg Reda does a great job explaining how to find the underlying API and extract data from a web app (in this case, stats.nba.com).

To get shot data for Stephen Curry we will use this url. The url shows the shots taken by Curry during the 2014-15 regular season in a JSON structure. Note also that Season, SeasonType and PlayerID are parameters in the url. Stephen Curry’s PlayerID is 201939. Continue reading

[VIDEO] The Math Behind Basketball

This is an interesting talk by Rajiv Maheswaran, Professor at the University of Southern California’s Computer Science Department.

He talks about capturing the massive amount of data that happens during a basketball game and using machine learning to understand complex events like “post ups” and “pick and rolls”. The machine can now see the game with the eyes of a coach.

Mind blown.