geom_text、scale_color_manual 中的条件文本颜色
Conditional text color in 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")
这里有一个重要的教训。始终将命名向量传递给尺度中的 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")
这里我把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")
这里有一个重要的教训。始终将命名向量传递给尺度中的 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")