Как сделать линейный график в R с суммой значений по периодам, разделенных по группам? - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь использовать GG Plot для преобразования следующих данных (существует больше периодов, чем указано здесь - с учетом линейного графика)

obs District    ZoneID  Period  SUM_activity
1   Northwestern    Northern: 53A   2019-02-06 - 2019-03-06 4
2   Northwestern    Northern: 53B   2019-02-06 - 2019-03-06 0
3   Northwestern    Northwestern: 61A   2019-02-06 - 2019-03-06 88
4   Northwestern    Northwestern: 61B   2019-02-06 - 2019-03-06 44
5   Northwestern    Northwestern: 61D   2019-02-06 - 2019-03-06 212
6   Northwestern    Northwestern: 62A   2019-02-06 - 2019-03-06 38
7   Northwestern    Northwestern: 62B   2019-02-06 - 2019-03-06 18
8   Northwestern    Northwestern: 62C   2019-02-06 - 2019-03-06 65
9   Northwestern    Northwestern: 62D   2019-02-06 - 2019-03-06 4
10  Northwestern    Northwestern: 63A   2019-02-06 - 2019-03-06 107
11  Northwestern    Northwestern: 63B   2019-02-06 - 2019-03-06 19
12  Northwestern    Northwestern: 63C   2019-02-06 - 2019-03-06 56
13  Northwestern    Northwestern: 63D   2019-02-06 - 2019-03-06 165
14  Northwestern    Northwestern: DATA  2019-02-06 - 2019-03-06 28
15  Northwestern    Northwestern: DATB  2019-02-06 - 2019-03-06 26
16  Northwestern    Northwestern: DATC  2019-02-06 - 2019-03-06 114
17  Northwestern    Outside Zones 2019-02-06 - 2019-03-06   1501
18  Southern    Outside Zones 2019-02-06 - 2019-03-06   2062
19  Southwestern Outside Zones  2019-02-06 - 2019-03-06 1351

В диаграмму, которая выглядит следующим образом:

chart

В основном - суммирование переменной sum_Activity. Однако линия должна указывать c на значение District.

Я просто не понимаю, как структурировать код (это для гистограммы - я не могу заставить работать линейную диаграмму - но это имя моего dataframe / vars:

by_species <- pro_ag %>%
  filter(ZoneID!= 'Outside Zones' & District = 'Northwestern') %>%
  group_by(Period) %>%
  summarize(sumPro=sum(SUM_activity))
ggplot(by_species, aes(x=Period,
                         y=sumPro)) +
  geom_col() 

Нужно ли использовать by_species? Есть ли простой способ добавить опции (чтобы он был цветным и выглядел так же, как у меня на изображении ), также есть варианты сглаживания линии?

Спасибо !!!

1 Ответ

1 голос
/ 03 апреля 2020

Вы ищете что-то подобное?

pro_ag %>%
  filter(ZoneID!= 'Outside Zones' & District = 'Northwestern') %>%
  group_by(Period, District) %>%
  summarize(sumPro=sum(SUM_activity)) %>%
  ggplot(aes(x=Period,y=sumPro, group = 1)) +
  geom_smooth(se = FALSE) 

Здесь я сделал фальшивый пример:

df <- data.frame(District = rep(LETTERS[1:3],each = 100),
                 Period = rep(rep(letters[1:10], each = 10),3),
                 Value = sample(1:100,300, replace = TRUE))

И я рассчитываю сумму значений на район и период перед построением графика это в ggplot2:

library(dplyr)
library(ggplot2)

df %>% group_by(District, Period) %>%
  summarise(Sum = sum(Value)) %>%
  ggplot(aes(x = Period, y = Sum, group = District, color = District))+
  #geom_point()+
  #geom_line()+
  geom_smooth(se = FALSE)

enter image description here

Это ответ на ваш вопрос?

...