In Major League Baseball, there has been an emphasis on throwing fastballs up in the zone recently to get outs. This can be contradictory to historical baseball knowledge which teaches that pitchers should locate down in the zone. So why are MLB pitchers throwing up in the zone?
Well, the answer is very complex like any phenomena in sports. MLB hitters are the best hitters in the world because they can hit good pitching. If good pitching is locating down in the zone, then the best hitters are going to make adjustments to hit balls that are located down in the zone.
We have seen a recent surge in talk about swing plane and ball exit angle. Hitters are always tinkering and trying to find new ways to be successful. Hitters who are swinging more upward than in the past are hitting for more power. This MLB season we are on track to see about 500 more homeruns than last year.
Just as hitters have adjusted their swing plane to hit for more power they have become incredibly good at hitting the low pitch. Pitchers and pitching staffs are realizing that elite hitters have adjusted to hitting low pitches and are mixing in more high fastballs to get outs.
Lets start by looking at the earned run averages in the MLB.
|Team||Pitches||Total Pitch||Pitches Up in Zone|
Looking at these two charts there are a few teams and ideas worth pointing out. The Boston Red Sox are leading all of MLB throwing about 29% of their fastballs up in the zone. They are also third in ERA and currently leading the AL East. The Los Angeles Dodgers are leading the MLB in ERA and are 6th in percentage of high fastballs thrown. They are also leading the NL West.
Just pointing out these teams and saying that they are successful because they throw high fastballs would not be the entire picture. The historical knowledge of throwing the baseball down in the zone is not just for no reason. Often, leaving the ball up and over the middle of the plate will not end in a desirable result.
Teams like the Houston Astros are being very successful throwing the ball down in the zone. The Houston Astros are throwing the least amount of fastballs up in the zone of any other team but are 6th in ERA. They are also leading the AL West with great help from their potent offense.
Elite hitters typically cannot cover all zones but can hit any zone well if they have an idea the pitch will be in that zone before it comes. This is why it is crucial to throw up in the zone in the right situation. For example, typically when the batter is down in the count early in the AB, say 0-2 or 1-2, they are trying to protect against all pitches. This makes it very difficult to reach a high velocity fastball up in the zone.
When the Boston Red Sox are inducing strikes by fastballs up in the zone, it is often when they are ahead in the count. Take a look at the chart below:
When I first made this chart I was not expecting there to be such a huge concentration of balls thrown up in the zone. I expected there to be more of an even spread around the edges of the strike zone. This map corroborates that the Boston Red Sox are throwing up in the zone a lot to induce strikes, especially when they are getting ahead in the count.
Let’s take a look at the Houston Astros map to see how they are inducing strikes with fastballs ahead in the count:
This is more what I would expect out of any team in the MLB. We have now seen the Boston Red Sox who are being very successful throwing balls up in the zone and the Houston Astros who are being successful getting strikes all over the zone.
Throwing up in the zone has been a hot topic and maybe hyped up too much by baseball analyst. I believe there are ways of still being successful locating pitches anywhere in the zone if it is in the right circumstance. Perhaps in a future blog I will try to find the best way to use fastballs up in the zone to get outs.
I generated these plots from baseballsavant.com‘s Statcast database search tool. Below is the R code I used to generate the heatmap plots.
## Strike zone heat map generator
## set up color palette
rf <- colorRampPalette(rev(brewer.pal(11,'Spectral')))
r <- rf(32)
## set up strike zone
strike_zone <- bind_cols(as.data.frame(c(-.95,-.95,.95)))
strike_zone <- bind_cols(strike_zone, as.data.frame(c(1.5,3.5,3.5)))
strike_zone2 <- bind_cols(as.data.frame(c(-.95,.95,.95)))
strike_zone2 <- bind_cols(strike_zone2, as.data.frame(c(1.5,1.5,3.5)))
names(strike_zone) <- c("x","z")
names(strike_zone2) <- c("x","z")
## plot x and z coordinates of pitches
p <- ggplot(df, aes(x, z))
h3 <- p + stat_bin2d(bins = 10) + scale_fill_gradientn(colours=r) +
geom_line(data = strike_zone, aes(x,z), size = 2) +
geom_line(data = strike_zone2, aes(x,z), size = 2) +
labs(title = "Houston Astros Fastball Strikes Ahead in the Count", y="Z", x = "X") +
theme(plot.title = element_text(hjust = 0.5,size = 12),
axis.title.x = element_text(size = 15),
axis.title.y = element_text(size=15,angle = 0,vjust = .5),
axis.text.x = element_text(size = 12),
axis.text.y = element_text(size=12))