Для простого визуального осмотра может быть достаточно интерактивного сюжета?Следы можно скрыть, нажав на легенду.
library(reshape2)
library(plotly)
Students <- data.frame(stud_id=seq(30), grade_course_a=round(runif(30, 1, 6)), grade_course_b=round(runif(30, 1, 6)), grade_course_c=round(runif(30, 1, 6)))
moltenStudents <- melt(Students, "stud_id", 2:ncol(Students))
moltenStudents$grade <- LETTERS[moltenStudents$value]
plot_ly(moltenStudents,
x = ~stud_id,
y = ~value,
color = ~variable,
text = ~grade,
type = 'scatter',
mode = 'lines'
)