为ggplot2中的geom_text指定颜色列表

时间:2014-11-28 22:36:11

标签: r ggplot2

使用指定的颜色绘制。

#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分配?谢谢。

1 个答案:

答案 0 :(得分:1)

尝试对geom_text调用进行此次微小更改:

#plot 
p <- ggplot(mtcars, aes(x=wt, y=mpg, label=rownames(mtcars)))
p + geom_text(colour=tmpC)

enter image description here

编辑: 说明:在您对geom_text的调用中,您将颜色分配到审美范围内,而没有关联的数据框; geom_text将在mtcars数据帧中查找列tmpC,该列不存在。在该答案中的修改后的调用中,颜色被分配在aes之外,类似于直接命名颜色,例如。

p + geom_text(colour=rep(c('red','purple'), length.out = nrow(mtcars)))

注意: ggplot2不会在aes中使用颜色分配引发错误,它只会忽略与数据框中任何内容都不匹配的值。