Upload 12 files
Browse files- batter_scatter.py +4 -4
- damage.py +4 -4
- decision_value.py +4 -4
- home.py +7 -5
- pitcher_scatter.py +4 -4
- pitching_summary_graphic_new_fg_api.py +4 -4
- rolling_batter.py +4 -4
- rolling_pitcher.py +4 -4
- spray.py +6 -5
- statcast_compare.py +4 -4
batter_scatter.py
CHANGED
@@ -421,10 +421,10 @@ batter_scatter = App(ui.page_fluid(
|
|
421 |
"Batter Scatter",
|
422 |
href="batter_scatter/"
|
423 |
),
|
424 |
-
ui.a(
|
425 |
-
|
426 |
-
|
427 |
-
),
|
428 |
ui.a(
|
429 |
"Statcast Compare",
|
430 |
href="statcast_compare/"
|
|
|
421 |
"Batter Scatter",
|
422 |
href="batter_scatter/"
|
423 |
),
|
424 |
+
# ui.a(
|
425 |
+
# "EV vs LA Plot",
|
426 |
+
# href="ev_angle/"
|
427 |
+
# ),
|
428 |
ui.a(
|
429 |
"Statcast Compare",
|
430 |
href="statcast_compare/"
|
damage.py
CHANGED
@@ -538,10 +538,10 @@ damage = App(ui.page_fluid(
|
|
538 |
"Batter Scatter",
|
539 |
href="batter_scatter/"
|
540 |
),
|
541 |
-
ui.a(
|
542 |
-
|
543 |
-
|
544 |
-
),
|
545 |
ui.a(
|
546 |
"Statcast Compare",
|
547 |
href="statcast_compare/"
|
|
|
538 |
"Batter Scatter",
|
539 |
href="batter_scatter/"
|
540 |
),
|
541 |
+
# ui.a(
|
542 |
+
# "EV vs LA Plot",
|
543 |
+
# href="ev_angle/"
|
544 |
+
# ),
|
545 |
ui.a(
|
546 |
"Statcast Compare",
|
547 |
href="statcast_compare/"
|
decision_value.py
CHANGED
@@ -592,10 +592,10 @@ decision_value = App(ui.page_fluid(
|
|
592 |
"Batter Scatter",
|
593 |
href="batter_scatter/"
|
594 |
),
|
595 |
-
ui.a(
|
596 |
-
|
597 |
-
|
598 |
-
),
|
599 |
ui.a(
|
600 |
"Statcast Compare",
|
601 |
href="statcast_compare/"
|
|
|
592 |
"Batter Scatter",
|
593 |
href="batter_scatter/"
|
594 |
),
|
595 |
+
# ui.a(
|
596 |
+
# "EV vs LA Plot",
|
597 |
+
# href="ev_angle/"
|
598 |
+
# ),
|
599 |
ui.a(
|
600 |
"Statcast Compare",
|
601 |
href="statcast_compare/"
|
home.py
CHANGED
@@ -59,10 +59,10 @@ home = App(ui.page_fluid(
|
|
59 |
"Batter Scatter",
|
60 |
href="batter_scatter/"
|
61 |
),
|
62 |
-
ui.a(
|
63 |
-
|
64 |
-
|
65 |
-
),
|
66 |
ui.a(
|
67 |
"Statcast Compare",
|
68 |
href="statcast_compare/"
|
@@ -106,7 +106,6 @@ This site hosts my Baseball Data Viz Apps from the 2023 season. Here is a summar
|
|
106 |
- **Decision Value**: Scatter plot and Rolling Stats Chart for my <a href='https://medium.com/@thomasjamesnestico/modelling-batter-decision-value-dac74c55e20a'>Decision Value Model</a><sup>1</sup>
|
107 |
- **Damage Model**: Hexbin and Rolling Stat Chart for my Damage Model (Article TBD)
|
108 |
- **Batter Scatter**: Scatter Plots for MLB and MiLB batters
|
109 |
-
- **EV vs LA Plot**: Scatter plot visualizing a MLB Batter's Exit Velocities and Launch Angles
|
110 |
- **Statcast Compare**: Table which compares MLB Batter's Statcast metrics
|
111 |
<br>
|
112 |
* Pitcher Charts
|
@@ -136,3 +135,6 @@ Here are a few other sites to learn more about me:
|
|
136 |
* LinkedIn: https://www.linkedin.com/in/thomas-nestico-b66013173/
|
137 |
* GitHub: https://github.com/tnestico
|
138 |
"""))), None)
|
|
|
|
|
|
|
|
59 |
"Batter Scatter",
|
60 |
href="batter_scatter/"
|
61 |
),
|
62 |
+
# ui.a(
|
63 |
+
# "EV vs LA Plot",
|
64 |
+
# href="ev_angle/"
|
65 |
+
# ),
|
66 |
ui.a(
|
67 |
"Statcast Compare",
|
68 |
href="statcast_compare/"
|
|
|
106 |
- **Decision Value**: Scatter plot and Rolling Stats Chart for my <a href='https://medium.com/@thomasjamesnestico/modelling-batter-decision-value-dac74c55e20a'>Decision Value Model</a><sup>1</sup>
|
107 |
- **Damage Model**: Hexbin and Rolling Stat Chart for my Damage Model (Article TBD)
|
108 |
- **Batter Scatter**: Scatter Plots for MLB and MiLB batters
|
|
|
109 |
- **Statcast Compare**: Table which compares MLB Batter's Statcast metrics
|
110 |
<br>
|
111 |
* Pitcher Charts
|
|
|
135 |
* LinkedIn: https://www.linkedin.com/in/thomas-nestico-b66013173/
|
136 |
* GitHub: https://github.com/tnestico
|
137 |
"""))), None)
|
138 |
+
|
139 |
+
|
140 |
+
# - **EV vs LA Plot**: Scatter plot visualizing a MLB Batter's Exit Velocities and Launch Angles
|
pitcher_scatter.py
CHANGED
@@ -438,10 +438,10 @@ pitcher_scatter = App(ui.page_fluid(
|
|
438 |
"Batter Scatter",
|
439 |
href="batter_scatter/"
|
440 |
),
|
441 |
-
ui.a(
|
442 |
-
|
443 |
-
|
444 |
-
),
|
445 |
ui.a(
|
446 |
"Statcast Compare",
|
447 |
href="statcast_compare/"
|
|
|
438 |
"Batter Scatter",
|
439 |
href="batter_scatter/"
|
440 |
),
|
441 |
+
# ui.a(
|
442 |
+
# "EV vs LA Plot",
|
443 |
+
# href="ev_angle/"
|
444 |
+
# ),
|
445 |
ui.a(
|
446 |
"Statcast Compare",
|
447 |
href="statcast_compare/"
|
pitching_summary_graphic_new_fg_api.py
CHANGED
@@ -2042,10 +2042,10 @@ pitching_summary_graphic_new = App(ui.page_fluid(
|
|
2042 |
"Batter Scatter",
|
2043 |
href="batter_scatter/"
|
2044 |
),
|
2045 |
-
ui.a(
|
2046 |
-
|
2047 |
-
|
2048 |
-
),
|
2049 |
ui.a(
|
2050 |
"Statcast Compare",
|
2051 |
href="statcast_compare/"
|
|
|
2042 |
"Batter Scatter",
|
2043 |
href="batter_scatter/"
|
2044 |
),
|
2045 |
+
# ui.a(
|
2046 |
+
# "EV vs LA Plot",
|
2047 |
+
# href="ev_angle/"
|
2048 |
+
# ),
|
2049 |
ui.a(
|
2050 |
"Statcast Compare",
|
2051 |
href="statcast_compare/"
|
rolling_batter.py
CHANGED
@@ -688,10 +688,10 @@ rolling_batter = App(ui.page_fluid(
|
|
688 |
"Batter Scatter",
|
689 |
href="batter_scatter/"
|
690 |
),
|
691 |
-
ui.a(
|
692 |
-
|
693 |
-
|
694 |
-
),
|
695 |
ui.a(
|
696 |
"Statcast Compare",
|
697 |
href="statcast_compare/"
|
|
|
688 |
"Batter Scatter",
|
689 |
href="batter_scatter/"
|
690 |
),
|
691 |
+
# ui.a(
|
692 |
+
# "EV vs LA Plot",
|
693 |
+
# href="ev_angle/"
|
694 |
+
# ),
|
695 |
ui.a(
|
696 |
"Statcast Compare",
|
697 |
href="statcast_compare/"
|
rolling_pitcher.py
CHANGED
@@ -674,10 +674,10 @@ rolling_pitcher = App(ui.page_fluid(
|
|
674 |
"Batter Scatter",
|
675 |
href="batter_scatter/"
|
676 |
),
|
677 |
-
ui.a(
|
678 |
-
|
679 |
-
|
680 |
-
),
|
681 |
ui.a(
|
682 |
"Statcast Compare",
|
683 |
href="statcast_compare/"
|
|
|
674 |
"Batter Scatter",
|
675 |
href="batter_scatter/"
|
676 |
),
|
677 |
+
# ui.a(
|
678 |
+
# "EV vs LA Plot",
|
679 |
+
# href="ev_angle/"
|
680 |
+
# ),
|
681 |
ui.a(
|
682 |
"Statcast Compare",
|
683 |
href="statcast_compare/"
|
spray.py
CHANGED
@@ -19,7 +19,8 @@ import matplotlib.pyplot as plt
|
|
19 |
from scipy.stats import gaussian_kde
|
20 |
|
21 |
### Import Datasets
|
22 |
-
dataset = load_dataset('nesticot/mlb_data', data_files=['mlb_pitch_data_2023.csv'
|
|
|
23 |
dataset_train = dataset['train']
|
24 |
df_2023 = dataset_train.to_pandas().set_index(list(dataset_train.features.keys())[0]).reset_index(drop=True)
|
25 |
# Paths to data
|
@@ -375,10 +376,10 @@ spray = App(ui.page_fluid(
|
|
375 |
"Batter Scatter",
|
376 |
href="batter_scatter/"
|
377 |
),
|
378 |
-
ui.a(
|
379 |
-
|
380 |
-
|
381 |
-
),
|
382 |
ui.a(
|
383 |
"Statcast Compare",
|
384 |
href="statcast_compare/"
|
|
|
19 |
from scipy.stats import gaussian_kde
|
20 |
|
21 |
### Import Datasets
|
22 |
+
dataset = load_dataset('nesticot/mlb_data', data_files=['mlb_pitch_data_2023.csv',
|
23 |
+
'mlb_pitch_data_2022.csv'])
|
24 |
dataset_train = dataset['train']
|
25 |
df_2023 = dataset_train.to_pandas().set_index(list(dataset_train.features.keys())[0]).reset_index(drop=True)
|
26 |
# Paths to data
|
|
|
376 |
"Batter Scatter",
|
377 |
href="batter_scatter/"
|
378 |
),
|
379 |
+
# ui.a(
|
380 |
+
# "EV vs LA Plot",
|
381 |
+
# href="ev_angle/"
|
382 |
+
# ),
|
383 |
ui.a(
|
384 |
"Statcast Compare",
|
385 |
href="statcast_compare/"
|
statcast_compare.py
CHANGED
@@ -624,10 +624,10 @@ statcast_compare = App(ui.page_fluid(
|
|
624 |
"Batter Scatter",
|
625 |
href="batter_scatter/"
|
626 |
),
|
627 |
-
ui.a(
|
628 |
-
|
629 |
-
|
630 |
-
),
|
631 |
ui.a(
|
632 |
"Statcast Compare",
|
633 |
href="statcast_compare/"
|
|
|
624 |
"Batter Scatter",
|
625 |
href="batter_scatter/"
|
626 |
),
|
627 |
+
# ui.a(
|
628 |
+
# "EV vs LA Plot",
|
629 |
+
# href="ev_angle/"
|
630 |
+
# ),
|
631 |
ui.a(
|
632 |
"Statcast Compare",
|
633 |
href="statcast_compare/"
|