Цвет Geom_jitter на основе значений - PullRequest
0 голосов
/ 03 июля 2018

Есть ли способ закрасить точки дрожания на блокпосте на основе числового значения, например:

ggplot(data, aes(y = y_var, x = x_var)) +
  geom_jitter(size = 2, aes(color = ifelse(y_var < 5, "red", "black)))

Я добавил этот воспроизводимый пример, который не совсем работает (цвета на графике не соответствуют вызову дрожания):

a <- rnorm(100, mean = 5, sd = 1)
b <- as.factor(sample(0:1, 100, replace = TRUE))
test_data <- data.frame(cbind(a,b))
test_data$b <- as.factor(test_data$b)

ggplot(test_data, aes(y = a, x = b)) + 
  geom_boxplot()+
  geom_jitter(aes(color = ifelse(a < 5, "red", "black")))

enter image description here

1 Ответ

0 голосов
/ 03 июля 2018

Перечисление названий цветов в вашем 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()

Еще лучше (и более масштабируемым и обслуживаемым) является разделение задач: пусть гемы обрабатывают создание геометрии и отображение на весы, а весы управляют настройкой того, как будут выглядеть весы. Вы можете использовать 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"))

Создан в 2018-07-03 пакетом Представить (v0.2.0).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...