我想为我的热图创建此色标:
这是我的数据集的一个示例:
我已经尝试过下面的代码,但是不起作用:
colfunc <-colorRampPalette(c("darkgreen", "lightgreen", "yellow", "orange", "red"))
ggplot(DATASET, aes(x = BUS_NR, y = MONTH_NR, fill = factor(ALERT_NB)) +
geom_tile() +
scale_fill_manual(values = colfunc(300))
请问如何创建适合每种颜色条件的漂亮色阶?
谢谢大家的帮助!
答案 0 :(得分:1)
关键是定义一个函数,该函数在您的数据集中创建一个新列来定义颜色的类别(在我的情况下为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)