I could group my data based on ranges of hours since my last leg workout (e.g., 0–12, 12–24, 24–48, 48+ hours) and calculate the mean vertical jump height within each group. This would help me see if more recovery time improves performance, since fatigue or muscle recovery could directly influence jump height.
# change name of table
df <- read.csv(here::here("ES193_jump.csv"))
# Rename the nasty column for clarity
df <- df %>%
rename(
RecoveryHours = `Time.since.last.leg.workout..hours.`,
JumpHeight = `Highest.Vertical.Jump..inches.`
)
# Create bins for recovery time
df <- df %>%
mutate(RecoveryGroup = cut(RecoveryHours,
breaks = c(0, 12, 24, 48, Inf),
labels = c("0–12 hrs", "12–24 hrs", "24–48 hrs", "48+ hrs"),
right = FALSE))
# Summarize by group
summary_df <- df %>%
group_by(RecoveryGroup) %>%
summarise(MeanJump = mean(JumpHeight, na.rm = TRUE))
# Plot
ggplot(df, aes(x = RecoveryGroup, y = JumpHeight)) +
geom_jitter(width = 0.2, color = "#2ca02c", size = 2, alpha = 0.6) + # individual points
geom_point(data = summary_df, aes(y = MeanJump), color = "#ff7f0e", size = 4) + # mean points
geom_line(data = summary_df, aes(x = RecoveryGroup, y = MeanJump, group = 1),
color = "#ff7f0e", size = 1) + # straight line between means
labs(
x = "Recovery Time Since Last Leg Workout",
y = "Vertical Jump Height (inches)",
caption = "Individual jump heights are shown in green. Orange points and the line represent the mean vertical jump height for each recovery group."
) +
theme_classic(base_size = 10)# Summarize and round the data
summary_df <- df %>%
group_by(RecoveryGroup) %>%
summarise(`Mean Jump Height (inches)` = round(mean(JumpHeight, na.rm = TRUE), 1))
# Create the gt table
summary_df %>%
gt() %>%
tab_header(
title = "Mean Vertical Jump by Recovery Time Group"
) %>%
cols_label(
RecoveryGroup = "Recovery Time Group"
)| Mean Vertical Jump by Recovery Time Group | |
| Recovery Time Group | Mean Jump Height (inches) |
|---|---|
| 0–12 hrs | 28.6 |
| 12–24 hrs | 29.8 |
| 24–48 hrs | 30.4 |
| 48+ hrs | 31.3 |
Training vertical jump sometimes feels like climbing a mountain. Some days you see progress dip while other days you reach unprecedented heights. I could have a linear graph of date on the x axis and vertical jump on the y axis. Days where I have a have a higher soreness index could be red while days where I feel fresh are shaded green. This would help visualize how I’ve progressed over time and also the ups and downs of training.
# Plot
df_jump <- read.csv(here::here("ES193_jump.csv")) %>%
rename(
JumpHeight = `Highest.Vertical.Jump..inches.`,
Soreness = `Soreness.Index..1.10.`,
JumpDate = Date
) %>%
mutate(
JumpDate = as.Date(JumpDate, format = "%m/%d")
) %>%
arrange(JumpDate)
ggplot(df_jump, aes(x = JumpDate, y = JumpHeight)) +
# Mountain shape
geom_area(fill = "gray90", alpha = 0.8) +
# Add color overlay points
geom_point(aes(color = Soreness), size = 4, alpha = 0.9) +
# Trend line on top
geom_line(color = "black", size = 1.2) +
# Color scale
scale_color_gradientn(colors = c("green3", "yellow", "red"), name = "Soreness") +
# Y-axis control
scale_y_continuous(limits = c(25, 35), expand = c(0, 0)) +
#labels and title
labs(
title = "How Jump Height is Influenced By Soreness",
x = "Date",
y = "Vertical Jump Height (inches)"
) +
# Theme
theme_minimal(base_size = 11) +
theme(
plot.title = element_text(face = "bold", hjust = 0.5, size = 18),
axis.title = element_text(face = "bold"),
panel.grid = element_blank(),
legend.position = "right"
)
d) I am showing context to the flucuations of physical training.
Progress isn’t a straight line. I used nature to inspire my work. I was
thinking about mountains and the reasons why they have crevices and
imperfect peaks. The process of millions of years of erosion and uplift
create what they are today – similair to how our current progress is the
summation of all the steps we took to get there. The code was written to
showcase that mountainous horizon. I looked up more data visualization
techniques to highlight the different spectrum of soreness in an
visually appealing way.
The table is organized, clearly showing predictor and response variables across temporal scales. Each cell is labeled with effect size and p-value, helping the reader interpret both the strength and significance of the environmental predictors. It may be a little too simple as it doesn’t neccesarily catch the readers eye with shading or bolding. It may be easy for the reader to miss the important statistics that are presented in the table.
The table has minimal clutter. This improves the readability but nothing is outwardly distinguished. The lack of lines makes it more difficult for the reader to see what value corresponds to what predictor. There is no bolding or italics that draw the reader to a specific number. The empty space, however, is easy on the eyes as a reader.
It would make sense to bold the B and P-values, allowing the reader to be drawn to the important numbers when looking briefly at the table. The author could also shade in every other row to improve the readability of the table from left to right. This creates an easier time skimming. Shading of every other column would also help when looking at the predictor variables statistics as there are too many numbers grouped together without clear division.