Ярлыки столбчатой ​​диаграммы с накоплением - использование geom_text для обозначения% по оси Y на основе значений - PullRequest
0 голосов
/ 30 января 2020

Я хочу создать гистограмму с накоплением, где моя ось Y измеряет значение, но в таблице показан% от общего бара.

Я думаю, что мне нужно добавить столбец pct в мою таблицу, а затем использовать его, но я не уверен, как получить столбец pct.

Например, DF: дата, тип, значение, pct 1 января, A, 5, 45% (5/11) 1 января, B, 6, 55% (6/11)

изображение таблицы и диаграммы

1 Ответ

0 голосов
/ 05 февраля 2020

Может быть как то так?

library(dplyr)
library(ggplot2)
test.df <- data.frame(date = c("2020-01-01", "2020-01-01", "2020-01-02", "2020-01-02"),
                      type = c("A", "B", "A", "B"),
                      val = c(5:6, 1, 7))

test.df <- test.df %>%
  group_by(date) %>%
  mutate(
    type.num = as.numeric(type),
    prop = val/sum(val),
    y_text_pos = ifelse(type=="B", val, sum(val))) %>%
  ungroup()


ggplot(data = test.df, aes(x = as.Date(date), y = val, fill = type)) +
  geom_col() +
  geom_text(aes(y = y_text_pos, label = paste0(round(prop*100,1), "%")), color = "black", vjust = 1.1)

С выводом: enter image description here

...