2014-11-28 3 views
0

участок с назначенными цветами.присвойте список цвета geom_text в 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 назначенной? Спасибо.

+2

Используйте 'scale_color_manual'. – Roland

ответ

1

Попробуйте это незначительное изменение вызова geom_text:

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

enter image description here

Edit:Объяснение: в вызове к geom_text назначить цвет внутри эстетическим, для которых существует нет связанного с ним кадра данных; geom_text будет выглядеть в кадре mtcars для столбца tmpC, который там не существует. В измененном вызове в этом ответе цвет присваивается вне aes, подобно тому, как он называет цвет напрямую, например.

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

Примечание: ggplot2 не выдаст ошибку с заданием цвета внутри АЭ, он просто игнорирует значения, которые ничего в dataframe не совпадают.

+0

Не могли бы вы просто объяснить это? Спасибо. –

Смежные вопросы