Я хотел бы создать график ggplot с вертикальными линиями разных цветов. Вот один из способов достижения этой цели.
mtcars$colors = rep(1:4, nrow(mtcars)/4)
ggplot(mtcars, aes(x=wt, y=mpg)) +
geom_point() +
geom_vline(xintercept=subset(mtcars, colors==1)$wt, color="red") +
geom_vline(xintercept=subset(mtcars, colors==2)$wt, color="blue") +
geom_vline(xintercept=subset(mtcars, colors==3)$wt, color="yellow") +
geom_vline(xintercept=subset(mtcars, colors==4)$wt, color="green")
Это решение не очень удобно, когда переменная colors
принимает 50 различных значений 1) потому что она просит пользователя написать очень длинное выражение (или итеративно построить объект ggplot) и 2) потому что она не создает легенды для цветов. Есть ли лучшее решение?