ggplot2 - Как добавить метки пропорций в столбчатую шкалу пропорций? - PullRequest
1 голос
/ 21 мая 2019

У меня есть сгруппированная столбчатая диаграмма пропорций, которую я создал следующим образом:

df <- data.frame(version = c("Version #1", "Version #2", "Version #1", "Version #2", "Version #1", "Version #2"),
                 result = c("good", "good", "ok", "ok", "bad", "bad"), 
                 amount = c(1608, 616, 2516, 979, 938, 266)) 

ggplot(df, aes(x=version,y=amount, fill=result, group = result)) + 
geom_bar(stat = "identity", position="fill") 

enter image description here

У меня есть вопросы, как я могу добавить метки пропорцийк сюжету.Примерно так:

enter image description here

Ответы [ 2 ]

2 голосов
/ 21 мая 2019

Это просто сделать с помощью ggstatsplot package-

# data
df <- data.frame(version = c("Version #1", "Version #2", "Version #1", "Version #2", "Version #1", "Version #2"),
                 result = c("good", "good", "ok", "ok", "bad", "bad"), 
                 amount = c(1608, 616, 2516, 979, 938, 266)) 

# plot
ggstatsplot::ggbarstats(
  data = df,
  main = result,
  condition = version,
  counts = amount
) +
  ggplot2::ylab("amount")

Создано в 2019-05-21 Представьте пакет (v0.3.0)

Если вам не нужны статистические результаты, просто установите results.subtitle = FALSE.

1 голос
/ 21 мая 2019

с трубами и обычными:

library(tidyverse)

df %>%
  group_by(version) %>%
  mutate(label = gsub('^[0](\\.\\d{1,2}).*', '\\1', amount / sum(amount))) %>%
  ungroup() %>%
  ggplot(aes(x = version, y = amount, fill = result, label = label, vjust = 2)) + 
  geom_col(position = "fill", alpha = .5) +
  geom_text(position = 'fill') +
  scale_fill_brewer(palette = 'Set1') +
  ggthemes::theme_tufte() +
  theme(axis.title.x = element_blank(), axis.ticks = element_blank(),
        legend.title = element_blank())

enter image description here

...