Как добавить текст на фасетированный сюжет при раскрашивании точек? - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь добавить текст к ограненному графику, который я могу сделать с помощью

datasets_text <- data.frame(cyl = unique(mtcars$cyl))
datasets_text$label <- c('text1','text2','text3')

mtcars <- head(mtcars)
ggplot(mtcars, aes(hp,drat))+
  geom_point()+
  facet_wrap(~cyl)+
  geom_text(size    = 2,
          data    = datasets_text,
          mapping = aes(x = Inf, y = Inf, label = label),
          hjust   = 1.05,
          vjust   = 1.5)

enter image description here

И я также хочу раскрасить точки, которыеЯ могу сделать с

mtcars <- head(mtcars)
ggplot(mtcars, aes(hp,drat, colour=gear))+
  geom_point()+
  facet_wrap(~cyl)+

enter image description here

Однако, когда я объединяю два

ggplot(mtcars, aes(hp,drat, colour=gear))+
  geom_point()+
  facet_wrap(~cyl)+
  geom_text(size    = 2,
          data    = datasets_text,
          mapping = aes(x = Inf, y = Inf, label = label),
          hjust   = 1.05,
          vjust   = 1.5)

, я получаю Error in FUN(X[[i]], ...) : object 'gear' not found.Как добавить текст к фасетам, а также раскрасить точки?

1 Ответ

0 голосов
/ 17 декабря 2018

Вы можете указать inherit.aes = FALSE в вызове geom_text:

ggplot(mtcars, aes(hp,drat, colour=gear))+
    geom_point()+
    facet_wrap(~cyl)+
    geom_text(size    = 2,
              data    = datasets_text,
              mapping = aes(x = Inf, y = Inf, label = label),
              hjust   = 1.05,
              vjust   = 1.5, inherit.aes = FALSE)

enter image description here

Из справки geom_textфайл относительно inherit.aes:

Если FALSE, переопределяет эстетику по умолчанию, а не комбинируется с ними.Это наиболее полезно для вспомогательных функций, которые определяют как данные, так и эстетику, и не должны наследовать поведение от спецификации графика по умолчанию

...