2016-11-09 1 views
1

여기서 colorRedTRUE으로 설정하여 텍스트가 빨간색으로 표시됩니다. 하지만 FALSE으로 설정하면 색상이 여전히 빨간색입니다.geom_text, scale_color_manual의 조건부 텍스트 색상

텍스트 색상을 colorRed 값의 조건부로 만드는 방법은 무엇입니까?

library(ggplot2) 

ann_text = data.frame(x = 1.5, y = max(mtcars$mpg), LABEL = "TEXT", colorRed = FALSE) 

ggplot(mtcars, aes(x = factor(am), y = mpg)) + geom_boxplot() + 
    geom_text(data = ann_text, aes(x = x, y = y, label = LABEL, color = colorRed)) + 
    scale_color_manual(values = c('red', 'black'), guide = "none") 

답변

3

여기에 중요한 교훈이 있습니다. 의도 된 매핑을 보장하기 위해 명명 된 벡터를 항상 축척의 valueslabels으로 전달하십시오.

ggplot(mtcars, aes(x = factor(am), y = mpg)) + 
    geom_boxplot() + 
    geom_text(data = ann_text, aes(x = x, y = y, label = LABEL, color = colorRed)) + 
    scale_color_manual(values = c('TRUE' = 'red', 'FALSE' = 'black'), guide = "none")