Ответить, не зная, какие данные и столбцы находятся внутри вашего набора данных, сложно. Вы спросили, как построить разные группы с разными цветами, есть ли в вашем наборе данных столбец "группа"? Если да, вы можете использовать unclass вместо выбора строк каждой группы. Пожалуйста, посмотрите минимальный воспроизводимый набор данных
df1=data.frame(val_x=runif(100,0,1),
val_y=runif(100,0,1),
group=c(rep("group1",33),
rep("group2",33),
rep("group3",34)))
и мое предложение для сюжета
plot(df1[,"val_x"],col=c("red","green","blue")[unclass(df1$group)])