Pitchers can be categorized as “Fly” or “Ground” based on the tendencies of batters responding to their pitches.
Our team just lost their best ground pitcher, and now we need to find someone to replace him!
We should look at our candidates spray chart to figure out the outcomes of their pitches, but first let’s look at some examples.
This is Framber Valdez, a LHP free agent who played for the Astros from 2018-2025.
This is Jeffrey Springs, a LHP for the Oakland A’s.
These graphs were created using ggspraychart, a function of the package baseballR.
Let’s use our ggplot knowledge to sign a new pitcher!
The general syntax is very similar to other ggplot functions.
However, there are a few main differences…
Column names must be placed within quotations, global variables do not.
Fill_value: Blue
Density: FALSE
Bins: 15 (Only applies if density = TRUE)
It is important to note that hc_y must be inverted due to the way statcast data interacts with ggspraychart.
This data belongs to a LHP, Should we pick him up as our new ground pitcher?
We can use the density parameter to better see the difference between our two example pitchers.
Valdez (Ground)
Springs (Fly)
Here is the density plot for our sample candidate, how would you categorize him?
Our mystery pitcher is Shota Imanaga, a LHP for the Chicago Cubs. He is a great example of a fly-ball pitcher.
Unfortunately for Shota, we have too many fly ball pitchers already, so we will have to find another candidate for our team.
Good thing you are now equipped to find us a new ground pitcher!
ggspraychart: https://rdrr.io/github/Fackz/baseball/man/ggspraychart.html
Baseball Savant (statcast): https://baseballsavant.mlb.com/statcast_search