Как использовать значения для создания гистограммы с накоплением?
Поэтому я создал три кадра данных в R с помощью функции count
scan_count_AB <- count(Hive_AB$Has_been_scanned == 1)
scan_count_C <- count(Hive_C$Has_been_scanned == 1)
scan_count_D <- count(Hive_D$Has_been_scanned == 1)
> scan_count_AB
x freq
1 FALSE 1403
2 TRUE 627
> scan_count_C
x freq
1 FALSE 167
2 TRUE 846
> scan_count_D
x freq
1 FALSE 135
2 TRUE 880
Теперь я хочу создать три гистограммы, которые выглядят так
Может кто-нибудь помочь мне, как это сделать?
1 ответ
Решение
Вы можете попробовать ggplot2
/tidyverse
library(tidyverse)
# your data
scan_count_AB <- data.frame(x= c(T, F), freq = c(1403, 627))
scan_count_C <- data.frame(x= c(T, F), freq = c(167, 846))
scan_count_D <- data.frame(x= c(T, F), freq = c(135, 880))
# and the plot
list(AB=scan_count_AB, C=scan_count_C, D=scan_count_D) %>%
bind_rows(.id = "id") %>%
group_by(id) %>%
mutate(perc = freq/(sum(freq))) %>%
mutate(x = factor(x, levels = c(T,F), labels=c("HNBS", "HBS"))) %>%
ggplot(aes(id, perc, fill = factor(x))) +
geom_col() +
scale_y_continuous(labels = scales::percent) +
scale_fill_discrete("") +
theme_bw() +
theme(legend.position = "bottom")