Eli McCormack Visualizations

Eli McCormack Rapsodo data visualizations against big league pitchers 2020 season averages.

library(tidyverse)
## ── Attaching packages ───────────────────────────────── tidyverse 1.3.0 ──
## ✓ ggplot2 3.3.2     ✓ purrr   0.3.4
## ✓ tibble  3.0.3     ✓ dplyr   1.0.2
## ✓ tidyr   1.1.1     ✓ stringr 1.4.0
## ✓ readr   1.3.1     ✓ forcats 0.5.0
## ── Conflicts ──────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
data <- read.csv('mccormack_data.csv')
data <- na.omit(data)
plot_data <- data[1:249,]
em <- data[250,]
mf <- data[19,]
hr <- data[72,]
ao <- data[77,]
ed <- data[117,]
mf
##    last_name first_name year ff_avg_speed ff_avg_spin ff_avg_break_h
## 44    Fulmer    Michael 2020         93.2        2170           -5.3
##    ff_avg_break_v sl_avg_speed sl_avg_spin sl_avg_break_h sl_avg_break_v
## 44          -15.6         87.6        2352            4.5          -30.4
##    ch_avg_speed ch_avg_spin ch_avg_break_h ch_avg_break_v
## 44         86.7        1662          -13.8          -30.6
hr
##     last_name first_name year ff_avg_speed ff_avg_spin ff_avg_break_h
## 138    Rondon     Hector 2020         95.7        2045           -8.1
##     ff_avg_break_v sl_avg_speed sl_avg_spin sl_avg_break_h sl_avg_break_v
## 138          -14.8         85.4        2290            5.7          -37.7
##     ch_avg_speed ch_avg_spin ch_avg_break_h ch_avg_break_v
## 138         88.3        1719          -15.1          -29.5
ao
##     last_name first_name year ff_avg_speed ff_avg_spin ff_avg_break_h
## 145  Ottavino       Adam 2020         92.8        2433           -7.4
##     ff_avg_break_v sl_avg_speed sl_avg_spin sl_avg_break_h sl_avg_break_v
## 145          -18.5           81        2862           17.9          -40.2
##     ch_avg_speed ch_avg_spin ch_avg_break_h ch_avg_break_v
## 145         87.4        1990          -12.2          -33.6
ed
##     last_name first_name year ff_avg_speed ff_avg_spin ff_avg_break_h
## 227      Diaz      Edwin 2020         97.8        2355          -14.4
##     ff_avg_break_v sl_avg_speed sl_avg_spin sl_avg_break_h sl_avg_break_v
## 227          -15.6         89.6        2319            1.2          -29.3
##     ch_avg_speed ch_avg_spin ch_avg_break_h ch_avg_break_v
## 227         93.4        1669          -18.3          -26.2
em
##     last_name first_name year ff_avg_speed ff_avg_spin ff_avg_break_h
## 470 McCormack        Eli 2020           93      2571.8            4.1
##     ff_avg_break_v sl_avg_speed sl_avg_spin sl_avg_break_h sl_avg_break_v
## 470          -14.5         77.7      2332.4           -3.1          -11.2
##     ch_avg_speed ch_avg_spin ch_avg_break_h ch_avg_break_v
## 470         77.3      2447.2           -2.5           -9.4

4-Seam FB Visualizations

ggplot(plot_data, aes(ff_avg_speed, ff_avg_spin)) + geom_point(alpha=.3) + ggtitle('Fastball Velocity vs. Spin Rate') + xlab('Velocity') + ylab('RPM') + geom_point(data = em, colour = 'red') + geom_text(data = em, label = 'Eli McCormack') + geom_point(data = mf, colour = 'black') + geom_text(data = mf, label = 'Michael Fulmer') + geom_point(data = hr, colour = 'black') + geom_text(data = hr, label = 'Hector Rondon') + geom_point(data = ao, colour = 'black') + geom_text(data = ao, label = 'Adam Ottovino') + geom_point(data = ed, colour = 'black') + geom_text(data = ed, label = 'Edwin Diaz')

ggplot(plot_data, aes(ff_avg_speed, ff_avg_break_h)) + geom_point(alpha=.3) + ggtitle('Fastball Velocity vs. Horizontal Break') + xlab('Velocity') + ylab('Horizontal Break') +geom_point(data = em, colour = 'red') + geom_text(data = em, label = 'Eli McCormack') +geom_point(data = mf, colour = 'black') + geom_text(data = mf, label = 'Michael Fulmer') + geom_point(data = hr, colour = 'black') + geom_text(data = hr, label = 'Hector Rondon') + geom_point(data = ao, colour = 'black') + geom_text(data = ao, label = 'Adam Ottovino') + geom_point(data = ed, colour = 'black') + geom_text(data = ed, label = 'Edwin Diaz')

ggplot(plot_data, aes(ff_avg_speed, ff_avg_break_v)) + geom_point(alpha=.3) + ggtitle('Fastball Velocity vs. Vertical Break') + xlab('Velocity') + ylab('Vertical Break') +geom_point(data = em, colour = 'red') + geom_text(data = em, label = 'Eli McCormack') + geom_point(data = mf, colour = 'black') + geom_text(data = mf, label = 'Michael Fulmer') + geom_point(data = hr, colour = 'black') + geom_text(data = hr, label = 'Hector Rondon') + geom_point(data = ao, colour = 'black') + geom_text(data = ao, label = 'Adam Ottovino') + geom_point(data = ed, colour = 'black') + geom_text(data = ed, label = 'Edwin Diaz')

Slider Visualizations

ggplot(plot_data, aes(sl_avg_speed, sl_avg_spin)) + geom_point(alpha=.3) + ggtitle('Slider Velocity vs. Spin Rate') + xlab('Velocity') + ylab('RPM') +geom_point(data = em, colour = 'red') + geom_text(data = em, label = 'Eli McCormack') +  geom_point(data = mf, colour = 'black') + geom_text(data = mf, label = 'Michael Fulmer') + geom_point(data = hr, colour = 'black') + geom_text(data = hr, label = 'Hector Rondon') + geom_point(data = ao, colour = 'black') + geom_text(data = ao, label = 'Adam Ottovino') + geom_point(data = ed, colour = 'black') + geom_text(data = ed, label = 'Edwin Diaz')

ggplot(plot_data, aes(sl_avg_speed, sl_avg_break_h)) + geom_point(alpha=.3) + ggtitle('Slider Velocity vs. Horizontal Break') + xlab('Velocity') + ylab('Horizontal Break') +geom_point(data = em, colour = 'red') + geom_text(data = em, label = 'Eli McCormack') +  geom_point(data = mf, colour = 'black') + geom_text(data = mf, label = 'Michael Fulmer') + geom_point(data = hr, colour = 'black') + geom_text(data = hr, label = 'Hector Rondon') + geom_point(data = ao, colour = 'black') + geom_text(data = ao, label = 'Adam Ottovino') + geom_point(data = ed, colour = 'black') + geom_text(data = ed, label = 'Edwin Diaz')

ggplot(plot_data, aes(sl_avg_speed, sl_avg_break_v)) + geom_point(alpha=.3) + ggtitle('Slider Velocity vs. Vertical Break') + xlab('Velocity') + ylab('Vertical Break') +geom_point(data = em, colour = 'red') + geom_text(data = em, label = 'Eli McCormack') +  geom_point(data = mf, colour = 'black') + geom_text(data = mf, label = 'Michael Fulmer') + geom_point(data = hr, colour = 'black') + geom_text(data = hr, label = 'Hector Rondon') + geom_point(data = ao, colour = 'black') + geom_text(data = ao, label = 'Adam Ottovino') + geom_point(data = ed, colour = 'black') + geom_text(data = ed, label = 'Edwin Diaz')

Changeup Visualizations

ggplot(plot_data, aes(ch_avg_speed, ch_avg_spin)) + geom_point(alpha=.3) + ggtitle('Changeup Velocity vs. Spin Rate') + xlab('Velocity') + ylab('RPM') +geom_point(data = em, colour = 'red') + geom_text(data = em, label = 'Eli McCormack') +  geom_point(data = mf, colour = 'black') + geom_text(data = mf, label = 'Michael Fulmer') + geom_point(data = hr, colour = 'black') + geom_text(data = hr, label = 'Hector Rondon') + geom_point(data = ao, colour = 'black') + geom_text(data = ao, label = 'Adam Ottovino') + geom_point(data = ed, colour = 'black') + geom_text(data = ed, label = 'Edwin Diaz')

ggplot(plot_data, aes(sl_avg_speed, sl_avg_break_h)) + geom_point(alpha=.3) + ggtitle('Changeup Velocity vs. Horizontal Break') + xlab('Velocity') + ylab('Horizontal Break') +geom_point(data = em, colour = 'red') + geom_text(data = em, label = 'Eli McCormack') +  geom_point(data = mf, colour = 'black') + geom_text(data = mf, label = 'Michael Fulmer') + geom_point(data = hr, colour = 'black') + geom_text(data = hr, label = 'Hector Rondon') + geom_point(data = ao, colour = 'black') + geom_text(data = ao, label = 'Adam Ottovino') + geom_point(data = ed, colour = 'black') + geom_text(data = ed, label = 'Edwin Diaz')

ggplot(plot_data, aes(sl_avg_speed, sl_avg_spin)) + geom_point(alpha=.3) + ggtitle('Changeup Velocity vs. Vertical Break') + xlab('Velocity') + ylab('Vertical Break') +geom_point(data = em, colour = 'red') + geom_text(data = em, label = 'Eli McCormack') +  geom_point(data = mf, colour = 'black') + geom_text(data = mf, label = 'Michael Fulmer') + geom_point(data = hr, colour = 'black') + geom_text(data = hr, label = 'Hector Rondon') + geom_point(data = ao, colour = 'black') + geom_text(data = ao, label = 'Adam Ottovino') + geom_point(data = ed, colour = 'black') + geom_text(data = ed, label = 'Edwin Diaz')