# Only once
library(beeswarm)LA-1 Report
Step 1 : Load the required library
Step 2 : Generate mock student data
set.seed(123)
student_data <- data.frame(
semester = rep(c("Spring", "Fall"), length.out = 233),
sex = sample(c("Man", "Woman"), 233, replace = TRUE),
exam1 = round(runif(233, 50, 100), 1),
exam2 = round(runif(233, 50, 100), 1),
exam3 = round(runif(233, 50, 100), 1)
)
# Course grade as average
student_data$course_grade <- round(rowMeans(student_data[, c("exam1", "exam2", "exam3")]), 1)Step 3 : Beeswarm plot: Course grade distribution by sex
beeswarm(course_grade ~ sex, data = student_data,
col = c("skyblue", "pink"),
pch = 16,
main = "Course Grades by Sex",
xlab = "Sex",
ylab = "Course Grade")Step 4 : Beeswarm plot: Exam1 distribution by semester
beeswarm(exam1 ~ semester, data = student_data,
col = c("lightgreen", "orange"),
pch = 16,
main = "Exam 1 Grades by Semester",
xlab = "Semester",
ylab = "Exam 1 Grade")# Beeswarm with boxplot overlay
beeswarm(course_grade ~ sex, data = student_data,
col = c("skyblue", "pink"),
pch = 16,
method = "center",
main = "Course Grades by Sex with Boxplot",
xlab = "Sex",
ylab = "Course Grade")
boxplot(course_grade ~ sex, data = student_data,
add = TRUE, border = "gray40", col = NA)This code creates a beeswarm plot of course grades by sex, with a boxplot overlay:
Beeswarm: Shows individual grades (colored points).
Boxplot: Adds median and quartiles (gray outline)
Colors: Skyblue for men, pink for women
Purpose: Compare grade distribution and summary stats by sex.