как включить метку для итогов в сложенный график geom_bar, в котором уже есть данные в стеках - PullRequest
0 голосов
/ 11 января 2019

Это действительно следующий вопрос Отображение значений данных на гистограмме с накоплением в ggplot2

На следующем графике я также хочу включить итоги столбцов, например: в первом стеке должно быть 963 (168 + 259 + 226 + 340):

Year      <- c(rep(c("2006-07", "2007-08", "2008-09", "2009-10"), each = 4))
Category  <- c(rep(c("A", "B", "C", "D"), times = 4))
Frequency <- c(168, 259, 226, 340, 216, 431, 319, 368, 423, 645, 234, 685, 166, 467, 274, 251)
Data      <- data.frame(Year, Category, Frequency)

library(ggplot2)
ggplot(Data, aes(x = Year, y = Frequency, fill = Category, label = Frequency)) +
  geom_bar(stat = "identity") +
  geom_text(size = 3, position = position_stack(vjust = 0.5))

1 Ответ

0 голосов
/ 11 января 2019

Вы должны создать еще одну сводную таблицу (сумма частоты по годам) и добавить ее к графику в виде еще одного слоя geom_text с vjust> 1, чтобы быть над полосой.

dfSum <- aggregate(Data$Frequency, list(Data$Year), sum)
ggplot(Data, aes(Year, Frequency, fill = Category, label = Frequency)) +
    geom_bar(stat = "identity") +
    geom_text(size = 3, position = position_stack(vjust = 0.5)) +
    geom_text(aes(Group.1, x, label = x), dfSum, inherit.aes = FALSE,
              position = position_stack(vjust = 1.05))

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...