Introducing the Interactive Spray Chart Tool

I’ve been working on an interactive tool that allows you to create spray charts using Game Day data from the past two years for a few weeks now. I’ve always loved the Katron Batted Ball tool, and it’s been a great resource of mine for years. However, I wanted to put something together that was a bit more interactive, allowed for more filtering, and made side-by-side comparisons easier.

Our writers here at FanGraphs have been kind enough to play around with it and offer suggestions. After some tweaks I am ready to officially release the tool into the wild so that anyone can use it.

There are three dashboards that users can leverage:

  • Player Year-to-Year Comparison: On this dashboard you can select a single player and see side-by-side comparisons of their batted ball performance for 2012 compared to 2013. So you can see how Mike Trout’s batted balls fared in 2012 compared to 2013:

Screen Shot 2013-11-04 at 9.14.41 AM

  • Player Comparison: Here you can select a player on the right-hand side and compare them to another player (or all players) on the left-hand side. Want to compare Mike Trout and Miguel Cabrera’s batted ball distributions in 2013? Have at it:


  • Park Comparison: Here you can compare batted balls for a single park, multiple parks, divisions, leagues, etc. Choose a park on the left and then decide if you want to exclude that park (or multiple parks) from the comparison on the right. You can also filter the comparison parks on the right by league or division. So for example, you can see how David Wright performed on batted balls over 300 feet in Citi Field compared to the rest of the National League East:


This is not HITf/x data (boy, I wish), but is taken directly from the Game Day PITCHf/x feed. That means you need to use and interpret this data with a bit of a grain of salt, as the location data is based on where the ball was fielded, not on where it hit the ground.

In terms of the various filters you can apply, here’s a rundown:

Year or yearid: Filter batted balls by either the 2012 or 2013, or view them both together.

League and Division: Filter batted balls by the league (NL or AL) or the division (e.g. National League West).

Stand: The handedness of the batter.

Zone: Area on the field where the batted ball was hit to. Zones are divided into 13 buckets, with batted ball angles of <=-55 being Zone 1, >-55 to <=-45 being Zone 2, etc.

Distance: Distance of the batted ball as tracked by GameDay. Remember, this is where the fielder picks up the ball, not it’s estimated true distance. This can be misleading when looking at a park like Fenway given balls hit off the Green Monster.

Angle: Angle of the batted ball relative to home plate, which is set at zero degrees. Negative angles are left field, positive angles are right field.

Batted Ball Type: Batted balls were coded into four buckets; FB – fly balls, GB – ground balls, LD – line drives, PU – pop ups.

Run Value: Batted balls were coded into five different run values; -.28 – outs, .5 – singles, .79 – doubles, 1.07 – triples, 1.41 – home runs

The tool will also allow you to zoom in on various areas of the spray chart to examine the data points more finely. There are tons of possibilities.

Click here to go the actual tool. Feedback is certainly welcome. Also, feel free to use the tool for your own work/articles, etc. I just ask that you link back to this article and/or the tool itself.

Data and analysis assistance provided by the amazing Jeff Zimmerman and Baseball Heat Maps.

Visualization tool courtesy of the fantastic Tableau Public.

Bill leads Predictive Modeling and Data Science consulting at Gallup. In his free time, he writes for The Hardball Times, speaks about baseball research and analytics, has consulted for a Major League Baseball team, and has appeared on MLB Network's Clubhouse Confidential as well as several MLB-produced documentaries. He is also the creator of the baseballr package for the R programming language. Along with Jeff Zimmerman, he won the 2013 SABR Analytics Research Award for Contemporary Analysis. Follow him on Twitter @BillPetti.

Newest Most Voted
Inline Feedbacks
View all comments
9 years ago