LA-1 Report

Author

Nagendra P, Yashwanth

Step 1 : Load the required library

  # Only once
library(beeswarm)

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.