Перечисление названий цветов в вашем geom, как вы делали, не сообщает цветовой шкале, какие цвета использовать, - оно просто разбивает значения на категории. Строки "red"
или "black"
не обязательно имеют здесь какое-либо значение. Если вы хотите назначить цвета внутри geom, дать названия цветов или шестнадцатеричные коды, которые вы используете, затем добавьте scale_color_identity
, так что есть указание, что "red"
на самом деле означает "сделать это красным цветом" и т. Д.
library(tidyverse)
ggplot(test_data, aes(y = a, x = b)) +
geom_boxplot() +
geom_jitter(aes(color = ifelse(a < 5, "red", "black"))) +
scale_color_identity()
![](https://i.imgur.com/daFq2lQ.png)
Еще лучше (и более масштабируемым и обслуживаемым) является разделение задач: пусть гемы обрабатывают создание геометрии и отображение на весы, а весы управляют настройкой того, как будут выглядеть весы. Вы можете использовать a < 5
в качестве переменной (вид прокси-переменной, поскольку она отсутствует в вашем фрейме данных), которая будет принимать значения true или false. Затем используйте цветовую шкалу, например scale_color_manual
, для установки цветов на основе значений true или false.
ggplot(test_data, aes(y = a, x = b)) +
geom_boxplot() +
geom_jitter(aes(color = a < 5)) +
scale_color_manual(values = c("TRUE" = "red", "FALSE" = "black"))
![](https://i.imgur.com/7kIR2VL.png)
Создан в 2018-07-03 пакетом Представить (v0.2.0).