library(ggplot2)
library(dplyr)
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
library(ggplot2)
library(dplyr)
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
<- data.frame(
grades Subject = rep(c("Math", "Science", "English", "History", "Art"), each = 2),
Semester = rep(c("Semester 1", "Semester 2"), times = 5),
Grade = c(85, 90, 78, 82, 92, 89, 74, 76, 88, 91)
)
ggplot(grades, aes(x = Semester, y = Grade, group = Subject, color = Subject)) +
geom_line(size = 1.2) +
geom_point(size = 3) +
geom_text(data = grades %>% filter(Semester == "Semester 1"),
aes(label = paste(Subject, Grade, sep = ": ")),
hjust = 1.1) +
geom_text(data = grades %>% filter(Semester == "Semester 2"),
aes(label = paste(Subject, Grade, sep = ": ")),
hjust = -0.1) +
theme_minimal() +
theme(legend.position = "none") +
ggtitle("Student Grades Comparison Across Two Semesters") +
scale_x_discrete(expand = expansion(add = c(0.2,0.2)))
Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
ℹ Please use `linewidth` instead.