Ключ в том, чтобы определить функцию, которая создает новый столбец в вашем наборе данных, определяющий класс цвета (в моем случае z). Затем вы можете просто сопоставить цвет с классом и построить его. Пожалуйста, предоставьте пример набора данных в следующий раз. Потребовалось немного, чтобы понять, но работает сейчас:
library(ggplot2)
x <- 1:10
y <- x*x*x
df <- data.frame(x,y)
cols <- c("1"="darkgreen","2"="green", "3"="lightgreen", "4" = "yellow", "5"="orange", "6"="red")
classof <- function(a){
if (a<50){
return(1)
}
if (a<100){
return(2)
}
if (a<150){
return(3)
}
if (a<200){
return(4)
}
if (a<300){
return(5)
}
else {
return(6)
}
}
z <- c()
for (i in seq(1,length(y))){
z <- c(z,classof(y[i]))
}
df$z <- z
p <- ggplot(df, aes(x,y))+ geom_point(aes(colour = factor(z)))
p + scale_colour_manual(values=cols)