Условный цвет текста в geom_text, scale_color_manual

Здесь я установил colorRed в TRUE поэтому текст красный. Но когда я установил его FALSE, цвет по-прежнему красный.

Как сделать цвет текста зависимым от значения 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")

1 ответ

Решение

Здесь есть важный урок. Всегда передавать именованный вектор 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")
Другие вопросы по тегам