Как добавить геометрическую фигуру или аннотацию к одному графику ggplot в `facet_grid`? - PullRequest
2 голосов
/ 15 апреля 2019

Я сделал граненый график, используя ggplot, а затем попытался использовать функцию annotate, чтобы создать выделенную серым цветом область только на одной конкретной панели графика.

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

Вот воспроизводимый пример:

ggplot(iris, aes(x = Sepal.Length))+
      geom_point(aes(y = Petal.Length))+
      facet_grid(Species~.)+
      annotate(geom = 'rect', xmin = 6, xmax = 6.5, ymin= 0, ymax= Inf,
               fill = 'grey20', alpha = 0.2)

output:

enter image description here

Я хочу, чтобы серая подсветка появлялась только на фасете versicolor, а не на каждом фасете.

РЕДАКТИРОВАТЬ

Как предложил пользователь @ user11362344, я проверяю его показания на использование geom_rect() и добавляю к коду вместо annotate() и WORKED VERY WELL! :

ggplot(data_2, aes(x = Sepal.Length))+
  geom_point(aes(y = Petal.Length))+
  facet_grid(Species~.)+
  geom_rect(data=data.frame(Species='versicolor'), inherit.aes=F, 
            xmin = 6, xmax = 6.5, ymin = 0, ymax = Inf, fill = 'grey20', alpha = 0.2)

вывод:

enter image description here

Спасибо всем за помощь!И особенно спасибо за @ user11362344!

1 Ответ

0 голосов
/ 15 апреля 2019
  geom_rect(data=data.frame(Species='versicolor'), inherit.aes=FALSE,
            xmin = 6, xmax = 6.5, ymin= 0, ymax= Inf,
            fill = 'grey20', alpha = 0.2)
...