Как мне раскрасить точки, используя 2 условия?

#r #ggplot2 #scatter

#r #ggplot2 #разброс

Вопрос:

Я хотел бы раскрасить свои точки на диаграмме рассеяния, Depo в зависимости от того, соответствуют ли они моим Cutoff критериям. Я пробовал раскрашивать с помощью Depo и использовать shape для Cutoff , но это не дает мне нужного изображения. Я действительно хочу, чтобы точки были раскрашены, Depo только если Cutoff = Good/Maybe и все точки, где Cutoff = Bad черные.

 Depth    Pj         T         Depo    Cutoff
100.69    1.095802    0.9986513    Dri    Good
97.04    1.009357    0.9624445    Pro    Good
74.74    1.039274    0.9880176    Tur    Maybe
106.46    1.054291    0.9873374    Pro    Maybe
109.37    1.117034    0.9913281    Dri    Bad
90.29    1.01166        0.9107071    Pro    Bad
  

Я пробовал это, но это не выделяет плохие образцы

 ggplot(MyData, aes(x=Pj, y=T, colour = Depo, shape = Cutoff))   geom_point()
  

Ответ №1:

Как насчет чего-то подобного?

 df %>%
    mutate(col = factor(ifelse(
        Cutoff %in% c("Good", "Maybe"),
        as.character(Depo),
        NA))) %>%
    ggplot(aes(x = Pj, y = T, colour = col, shape = Cutoff))  
    geom_point()
  

введите описание изображения здесь


Пример данных

 df <- read.table(text = "Depth    Pj         T         Depo    Cutoff
100.69    1.095802    0.9986513    Dri    Good
97.04    1.009357    0.9624445    Pro    Good
74.74    1.039274    0.9880176    Tur    Maybe
106.46    1.054291    0.9873374    Pro    Maybe
109.37    1.117034    0.9913281    Dri    Bad
90.29    1.01166        0.9107071    Pro    Bad", header = T)
  

Комментарии:

1. Это работает именно так, как я хочу, но как мне изменить NA в легенде на что-то более значимое, например, на обрезание ниже? @Maurits