Геометрическая гистограмма, сумма подсчета не видна

У меня есть тег dataframe со структурой 51X5

structure(list(Tagging = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("CIRCLE CAMPIAGN", 
    "NATIONAL CAMPIAGN"), class = "factor"), Status = structure(c(1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L), .Label = c("Negative", "Positive"), class = "factor"), 
        Month = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 
        3L, 3L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 
        3L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 
        1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 3L), .Label = c("JUL", 
        "JUN", "MAY"), class = "factor"), Category = structure(c(1L, 
        4L, 6L, 1L, 2L, 4L, 6L, 1L, 2L, 4L, 5L, 6L, 1L, 2L, 4L, 5L, 
        6L, 1L, 2L, 4L, 5L, 6L, 1L, 2L, 4L, 6L, 1L, 4L, 6L, 2L, 3L, 
        4L, 6L, 1L, 2L, 3L, 4L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 
        3L, 4L, 5L, 6L, 6L), .Label = c("Data", "Other", "Roaming", 
        "Unlimited", "VAS", "Voice"), class = "factor"), count = c(3L, 
        2L, 1L, 4L, 5L, 2L, 1L, 2L, 6L, 7L, 2L, 3L, 4L, 9L, 6L, 2L, 
        3L, 3L, 3L, 10L, 2L, 5L, 5L, 5L, 4L, 3L, 1L, 1L, 1L, 2L, 
        1L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 4L, 1L, 1L, 3L, 3L, 2L, 
        1L, 1L, 1L, 3L, 4L, 2L)), class = "data.frame", row.names = c(NA, 
    -51L))

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

ggplot(data = tag, aes(x = Tagging, y = count, fill = Status)) +
  geom_col() +
  labs(x = "Tagging", y = "Count", title = "FlyTxt ROI", subtitle = "Statistics") +
  geom_text(aes(label = count), color = "white", size = 3, position = position_stack(vjust = 0.5)) + 
  theme_minimal()+facet_wrap(~Month)

Но я получаю раздельные значения счетчика:

Помогите, так как мне нужна только сумма подсчета для каждого статуса


person Vaibhav Singh    schedule 13.08.2018    source источник
comment
что, если при редактировании на geom_col(position = "dodge") это ожидаемый результат?   -  person Stephan    schedule 13.08.2018
comment
НЕТ Я хочу, чтобы сумма подсчета была видна для каждой категории. Я пробовал описанное выше не сработало. Я хочу Например: - Два подсчета на первом столбце (круглая кампания, июль), один на синем ((сумма подсчетов для отрицательных)), а другой на оранжевом (сумма подсчетов для отрицательных)   -  person Vaibhav Singh    schedule 13.08.2018


Ответы (1)


Проблема в том, что информация, которую вы показываете на панели, накапливается geom_col по всем категориям, но geom_text этого не делает. Один из вариантов - предварительно суммировать данные (чтобы избавиться от разделения по категориям), а затем построить график.

library(tidyverse)

tag_sum <- tag %>% 
  group_by(Tagging, Status, Month) %>% 
  summarise(count_sm = sum(count))

ggplot(data = tag_sum, aes(x = Tagging, y = count_sm, fill = Status)) +
  geom_col() +
  geom_text(aes(label = count_sm), color = "white", size = 3, 
            position = position_stack(vjust = 0.5)) + 
  facet_wrap(~Month) + 
  labs(x = "Tagging", y = "Count", title = "FlyTxt ROI", subtitle = "Statistics") +
  theme_minimal() 

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

person kath    schedule 13.08.2018
comment
Привет. Кажется, есть ошибка в коде tag_sum, который вы опубликовали, всего он преобразуется в 1 значение - person Vaibhav Singh; 13.08.2018
comment
Но ожидаемое изображение на выходе точно такое, как нужно. Не могли бы вы проверить код один раз - person Vaibhav Singh; 13.08.2018
comment
Я проверил еще раз в новом сеансе R, и он дает ту же картину. - person kath; 13.08.2018
comment
Некоторая проблема с Plyr & Dplyr. Работает как уже упоминалось. Благодаря тонну :) - person Vaibhav Singh; 13.08.2018