2016-11-09 2 views
1

Здесь я установил colorRed в TRUE, чтобы текст был красным. Но когда я установил его на 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

Здесь есть важный урок. Всегда передавайте именованный вектор в values и labels в шкалах, чтобы обеспечить предполагаемое отображение.

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")