Добавьте относительную частоту к бинам в гистограмме - ggplot2 - PullRequest
0 голосов
/ 23 сентября 2019

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

Любая помощь будет очень оценена.

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

df_CK <- data.frame(id = c(1:36), ck = c(121, 82, 100, 151, 68, 58, 95, 145, 64, 199, 101, 163,
       84, 57, 139, 60, 78, 94, 119, 104, 110, 113, 118, 203, 62, 83, 67, 93, 92, 110, 25, 123, 70, 48, 95, 42))

ggplot(df_CK, aes(x = ck, y = ..density..)) +
  geom_histogram(breaks = c(20, 40, 60, 80, 100, 120, 140, 160, 200, 220), fill = "coral1", colour = "grey60", size = .2) +
  theme(plot.title = element_text(size = 5, face = "bold", hjust = 0.5)) +
  theme_classic() +
  theme_bw(base_line_size = 0, base_rect_size = 0.25, base_size = 6) +
  ylab("Densidade") +
  scale_x_continuous(limits = c(0, 216), breaks = seq(0, 216, 9))
  # geom_text(aes(x = ck, label = ..prop.., y = ..density..),
  #           position = position_dodge(width = .5), vjust = -0.5, size = 2)

Best, Hellen

1 Ответ

1 голос
/ 23 сентября 2019

Используйте один и тот же стат между двумя гемами.Затем используйте вычисленную статистику, указанную в документации.

Например:

br <- c(20, 40, 60, 80, 100, 120, 140, 160, 200, 220)
ggplot(df_CK, aes(ck, stat(density))) +
  geom_histogram(breaks = br) +
  geom_text(
    aes(label = round(stat(count) / sum(stat(count)), 2)), 
    stat = 'bin', vjust = -1, breaks = br
  )

enter image description here

...