Заполнить область между двумя точками R - PullRequest
3 голосов
/ 31 марта 2020

У меня есть , похожий на следующий:

 Offensive <- tibble(OffenseFormation = c("A","B","C"),
                     yardas_mean = c(3,4,5),
                     yardas_min  = c(1,4,1),
                     yardas_max  = c(5,4,6))

Я строю линии с помощью следующего кода (как вы можете видеть на рисунке ниже):

 Offensive %>%
   pivot_longer(starts_with("yardas_"),names_to = "yardas") %>% 
   ggplot(aes(x = OffenseFormation, y = value, group = yardas)) +
   geom_line(aes(colour = yardas)) + 
   geom_point(aes(colour = yardas)) 

enter image description here

Мне нужно заполнить область между строками yardas_min и yardas_max.

Я уже использовал следующие заказы ggplot:

  • geom_area(alpha=0.1)

  • geom_polygon( aes(y = value, group = yardas), alpha = 0.1)

, а также прочитайте некоторые предыдущие сообщения, подобные этим:

Но безуспешно, какая-нибудь помощь?

Спасибо,

Альберто

1 Ответ

3 голосов
/ 31 марта 2020

Проблема в том, что у вас есть дискретные значения в качестве оси x. Вы можете создать ленту, добавив непрерывные значения в geom_ribbon:

Offensive %>%
  pivot_longer(starts_with("yardas_"),names_to = "yardas") %>% 
  ggplot(aes(x = OffenseFormation, y = value, group = yardas)) +
  geom_line(aes(colour = yardas))+
  geom_ribbon(data = Offensive, 
               inherit.aes = FALSE, 
               aes(x = 1:3, ymin = yardas_min, ymax = yardas_max), 
              fill = "grey70")+
  geom_line(aes(colour = yardas))+
  geom_point(aes(colour = yardas))

enter image description here

...