使用指定的颜色绘制。
#color generatering
map2col<-function(x,pal,limits=NULL){
if(is.null(limits)) limits=range(x)
pal[findInterval(x,seq(limits[1],limits[2],length.out=length(pal)+1), all.inside=TRUE)]
}
tmpC <- map2col(mtcars$cyl, c("red", "blue", "yellow"))
#plot
p <- ggplot(mtcars, aes(x=wt, y=mpg, label=rownames(mtcars)))
p + geom_text(aes(colour=tmpC))
问题:tmpC分配的颜色不起作用。如何将col作为tmpC分配?谢谢。
答案 0 :(得分:1)
尝试对geom_text调用进行此次微小更改:
#plot
p <- ggplot(mtcars, aes(x=wt, y=mpg, label=rownames(mtcars)))
p + geom_text(colour=tmpC)
编辑: 说明:在您对geom_text的调用中,您将颜色分配到审美范围内,而没有关联的数据框; geom_text将在mtcars数据帧中查找列tmpC,该列不存在。在该答案中的修改后的调用中,颜色被分配在aes之外,类似于直接命名颜色,例如。
p + geom_text(colour=rep(c('red','purple'), length.out = nrow(mtcars)))
注意: ggplot2不会在aes中使用颜色分配引发错误,它只会忽略与数据框中任何内容都不匹配的值。