2014-11-28 2 views
0

지정된 색상의 플롯입니다.ggplot2의 geom_text에 색상 목록을 할당합니다.

#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에서 할당 한 색상이 작동하지 않습니다. tmpC로 col을 할당하는 방법은 무엇입니까? 고맙습니다.

+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

편집 :설명 : 당신이하는, 미적 내부의 색을 지정 geom_text 당신의 전화에 관련 데이터 프레임 없음. geom_text는 mtcars 데이터 프레임에서 tmpC 열을 찾습니다. 거기에는 존재하지 않습니다. 이 대답의 수정 된 호출에서, 색상을 예를 들어 직접적으로 명명하는 것과 유사한 방식으로 색상 바깥에 할당됩니다.

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

참고 : AES 내부의 색상 지정에 오류가 발생하지 않습니다 ggplot2, 그것은 단지 dataframe에서 아무것도 일치하지 않는 값을 무시합니다.

+0

간단한 설명을 해 주시겠습니까? 고맙습니다. –

관련 문제