Home > Enterprise >  How to add percentage labels to stacked barchart, ggplot2, with several categories
How to add percentage labels to stacked barchart, ggplot2, with several categories

Time:11-03

I would like to make a stacked barchart in ggplot2 that would show percentage of positive patients with symptoms in 4 distinct groups.

Therefore, each group will have calculated its own percentage of positive patients which will need to be done for each symptom.

The barchart without the percentages looks like this: enter image description here

The code:

symptoms %>% pivot_longer(cols = c(symptom_1, symptom_2, symptom_3, symptom_4, symptom_5, symptom_6), names_to = "name", values_to = "value") %>%  ggplot(aes(x = name, y = value, fill = factor(group)))  geom_col()

The data:

group;symptom_1;symptom_2;symptom_3;symptom_4;symptom_5;symptom_6
2;1;1;1;0;1;1
2;1;1;1;0;0;0
1;0;0;0;0;0;0
1;0;1;0;0;0;0
1;0;0;0;0;0;0
3;0;0;0;0;0;0
4;0;1;0;0;0;0
1;1;0;1;0;0;1
1;0;0;0;0;0;0
2;0;1;1;1;1;1
2;1;0;0;0;0;0
1;0;1;1;0;0;0
1;1;1;0;0;0;1
2;0;0;0;0;1;0
2;0;0;1;0;0;0
4;0;1;1;0;1;0
4;0;0;0;0;0;0
1;1;0;0;0;0;0
1;0;0;0;0;0;0
2;0;1;0;0;0;0
3;1;0;0;0;0;0
1;0;0;0;0;0;0
2;0;0;1;0;1;0
1;0;0;0;0;1;1
2;0;0;0;0;0;0
3;1;0;0;0;1;0
4;0;0;0;0;0;0
1;0;0;0;0;0;0
2;0;0;0;0;1;0
4;0;0;0;0;0;0
4;0;1;1;0;0;0
1;0;0;0;0;0;1
4;0;0;0;0;0;0
1;1;0;0;0;0;0
4;0;0;0;0;0;0
2;0;1;0;0;1;0
4;0;1;0;0;0;0
2;0;0;0;0;1;0
1;0;0;0;1;0;0
4;0;0;0;0;0;0
4;0;0;0;1;0;0
3;1;1;1;1;0;1
1;0;0;0;0;0;0
4;0;0;1;0;0;0
1;0;0;0;0;0;0
3;0;0;1;0;0;1
1;0;0;0;0;0;0
4;0;0;0;0;0;0
1;1;0;0;0;0;1
4;0;0;0;0;0;0
1;0;1;0;0;0;1
1;0;0;0;0;0;0
4;1;0;1;1;0;0
3;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
2;0;0;0;0;0;0
2;0;0;0;0;0;0
3;0;1;0;0;0;0
4;1;0;1;0;0;0
4;0;0;0;1;0;0
1;1;0;0;0;0;0
2;0;0;0;0;0;1
4;0;0;0;0;0;0
3;0;0;0;0;0;0
2;0;0;0;0;0;0
3;1;0;1;0;0;0
4;1;0;0;0;0;0
1;0;0;0;0;1;0
2;1;0;0;0;0;0
4;0;0;0;0;0;0
1;1;0;1;0;0;0
2;1;0;0;0;1;0
1;0;0;0;0;0;0
1;1;0;0;0;0;0
1;0;0;0;0;0;0
4;0;0;1;1;0;0
1;1;0;0;0;1;0
4;0;0;0;0;0;0
1;0;0;0;0;0;0
4;1;0;0;0;0;0
1;1;1;0;0;0;1
1;0;0;0;1;0;1
1;0;0;0;0;0;0
4;0;0;0;0;0;0
1;0;1;0;0;0;0
3;0;0;0;0;0;0
4;1;1;1;0;0;0
1;1;0;0;0;0;0
1;1;0;0;0;1;0
2;0;0;0;1;0;0
4;1;1;1;0;0;0
1;1;1;1;0;1;1
1;0;1;1;0;0;0
3;0;0;0;0;0;0
4;0;0;0;0;0;0
2;0;0;1;0;0;0
1;0;0;0;0;0;0
4;0;0;0;0;0;0
1;1;0;0;0;1;0
4;0;1;1;0;0;0
2;1;0;0;0;0;0
2;1;0;0;0;0;1
1;0;1;0;0;0;0
4;1;0;1;0;0;1
3;0;0;0;0;0;0
3;0;0;0;0;1;0
4;0;0;0;0;0;0
3;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
1;0;0;0;0;0;0
3;0;0;0;0;0;0
3;1;1;0;0;1;0
4;0;1;0;0;0;0
4;1;0;0;0;0;0
1;0;0;0;0;0;0
3;0;1;0;0;0;0
4;0;1;0;0;0;0
3;0;0;0;0;0;0
1;1;0;0;0;1;0
1;1;1;0;0;0;0
4;0;0;1;1;0;0
3;0;0;0;0;0;0
4;0;1;1;1;0;0
3;0;0;0;0;0;0
3;1;0;0;0;0;0
3;0;0;0;0;1;0
3;0;1;1;0;0;0
2;0;0;0;0;0;0
1;1;0;0;0;0;0
3;0;0;0;0;0;0
1;1;0;1;0;1;0
2;1;0;0;0;1;0
1;0;1;0;0;0;0
3;0;0;0;0;0;0
4;0;0;1;0;0;0
4;0;1;0;1;1;0
2;0;0;0;0;0;1
1;0;0;0;0;0;0
1;0;0;1;0;1;0
4;0;0;1;0;0;0
2;0;0;1;0;1;0
3;0;0;0;0;0;0
1;0;1;1;0;0;1
1;0;0;1;0;0;0
4;0;0;1;0;0;0
2;0;0;0;0;0;0
2;0;0;0;0;0;0
4;0;0;0;0;0;0
4;1;0;0;0;0;0
1;1;0;0;0;1;0
4;0;1;1;1;0;0
3;1;0;0;0;0;0
1;0;0;0;0;0;1
1;0;0;0;0;0;0
4;0;0;0;0;0;0
2;0;0;1;0;0;0
1;0;0;0;0;0;0
3;1;0;0;0;0;0
4;0;0;0;0;0;0
2;0;0;0;0;0;0
1;0;0;0;0;0;1
3;0;0;0;1;0;0
4;0;0;0;0;1;0
1;0;0;0;0;0;1
2;0;0;0;0;0;0
3;1;0;0;1;0;0
2;0;0;0;0;0;0
4;0;0;0;0;0;0
1;0;0;1;0;0;0
4;0;0;0;0;0;0
1;0;0;0;0;0;0
4;1;0;1;0;0;0
4;0;0;0;0;0;1
3;0;1;0;0;0;1
4;0;1;0;1;1;0
3;1;0;0;0;0;0
4;1;1;0;0;0;0
1;1;0;1;0;0;0
2;0;0;0;0;0;0
3;0;0;1;0;0;0
2;0;0;0;1;0;0
1;1;0;0;0;0;0
1;1;0;0;0;1;0
1;0;0;0;0;0;0
4;0;1;1;0;0;0
1;0;0;0;0;0;1
3;0;1;0;1;0;0
3;1;0;0;0;1;0
2;0;0;0;0;0;0
1;1;0;0;0;0;0
4;1;0;0;0;0;0
1;0;0;0;0;0;0
1;0;0;0;0;0;1
2;0;0;0;0;0;0
1;0;0;0;0;0;0
4;0;0;0;0;0;0
1;0;0;0;0;1;0
4;0;0;0;0;0;0
2;0;0;0;0;0;0
4;0;1;0;1;1;0
4;1;0;1;0;0;0
3;1;0;0;0;0;0
1;0;0;0;0;0;0
3;1;0;1;0;0;0
4;0;0;0;0;0;0
1;0;0;0;0;0;0
3;0;0;0;0;0;0
3;0;0;0;0;0;0
2;1;0;0;0;0;0
1;1;0;0;0;0;0
3;0;0;0;0;1;0
1;1;1;0;0;1;0
1;1;0;0;0;0;0
4;0;0;1;0;0;0
4;0;0;0;0;0;0
1;0;0;0;0;0;0
1;0;0;1;0;0;0
4;0;0;0;0;0;0
2;0;1;0;0;0;0
3;1;1;1;0;0;0
1;0;0;0;0;0;0
1;0;1;0;0;0;0
3;0;0;1;0;0;0
4;0;0;0;1;0;0
1;0;0;0;0;0;0
3;0;0;0;0;0;0
1;0;0;1;0;0;1
4;1;1;0;0;0;0
1;0;0;0;0;0;0
4;0;0;0;0;0;0
2;0;0;0;0;0;0
1;1;1;0;0;1;1
2;0;0;0;0;0;1
2;0;1;1;0;1;1
1;0;0;1;0;0;0
1;0;0;0;0;0;0
4;0;0;0;0;0;0
2;1;1;1;0;1;1
2;1;0;1;0;1;0
2;0;0;0;0;0;0
4;0;0;0;0;0;0
2;0;1;0;0;0;0
2;0;0;0;0;1;0
1;0;0;0;0;0;0
1;0;0;0;0;1;0
1;0;0;1;0;0;1
3;0;1;0;0;0;0
4;1;1;1;0;0;0
4;1;0;0;0;1;0
2;0;0;0;0;0;1
4;0;0;0;1;0;0
1;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
1;0;0;0;0;0;0
1;1;0;0;0;0;0
3;0;0;1;0;0;0
1;0;0;0;0;0;1
4;0;0;0;0;0;0
1;1;0;0;0;1;0
4;0;1;1;1;0;0
1;0;0;0;0;0;0
1;0;0;0;0;0;0
2;1;0;0;0;1;0
2;1;1;0;0;1;1
3;0;0;0;0;0;0
2;0;1;0;0;1;0
1;0;0;0;0;0;0
1;0;0;0;0;0;0
4;0;0;0;0;0;0
1;0;0;0;0;0;0
2;0;0;0;0;1;0
2;0;0;0;0;0;0
1;0;0;1;0;0;0
1;0;0;0;0;0;0
1;1;0;0;0;0;1
4;1;0;0;0;0;0
2;0;0;0;0;0;0
4;0;0;0;0;0;0
2;0;0;1;0;0;0
1;1;0;0;0;0;0
1;0;0;0;0;0;1
1;0;0;1;0;0;0
3;0;0;0;1;0;0
4;0;1;0;0;1;0
3;0;1;1;0;0;1
2;1;1;0;0;1;1
4;1;0;0;1;0;0
4;1;1;1;0;0;0
2;1;0;1;0;0;0
2;0;0;0;0;1;0
4;1;0;1;0;0;0
4;0;1;0;1;0;0
4;0;0;0;0;0;0
1;1;0;0;0;0;0
2;1;1;1;0;1;0
2;1;1;0;0;0;0
2;1;1;0;1;0;0
4;0;0;0;1;0;0
1;1;0;0;0;0;0
4;1;0;0;0;0;0
3;0;0;0;0;1;0
2;0;0;0;0;1;0
4;0;0;0;0;1;0
2;0;0;0;0;0;0
2;0;0;1;0;0;0
3;1;0;0;0;0;0
1;1;1;0;0;0;0
1;0;0;0;0;1;1
3;1;0;1;0;0;0
1;1;1;0;0;0;0
3;0;0;0;1;0;0
4;0;0;0;0;0;0
4;1;0;0;0;0;0
2;0;1;1;0;0;0
4;0;0;0;1;0;0
3;0;0;0;0;1;0
1;0;0;0;0;1;0
2;0;1;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
1;1;0;0;0;0;0
4;0;0;0;0;0;0
2;0;1;1;0;0;0
2;0;0;0;0;0;0
1;0;0;1;0;1;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
4;1;0;1;0;0;0
4;0;0;1;1;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
1;1;0;0;0;1;0
1;0;0;0;0;1;0
3;0;0;0;0;0;0
4;0;1;0;0;0;0
4;0;0;0;0;0;0
1;0;0;1;0;0;0
1;0;0;0;0;1;1
1;0;0;0;0;0;0
2;0;0;0;0;1;1
4;0;0;0;1;0;0
2;0;1;0;0;0;0
1;0;1;0;0;0;1
4;1;1;0;0;0;0
4;0;0;0;0;0;0
2;1;0;0;0;1;0
3;0;1;0;0;0;0
4;0;1;1;0;0;0
2;1;0;0;0;0;1
1;0;1;1;0;0;0
2;0;1;0;0;0;1
2;0;0;0;0;0;0
2;0;0;1;0;0;0
4;0;0;1;0;0;0
2;1;0;0;0;1;0
4;0;0;0;0;0;0
4;0;0;1;1;0;0
2;0;1;1;0;0;1
4;0;0;1;0;0;0
1;1;1;1;0;0;0
4;0;1;0;0;1;0
4;0;1;0;0;0;0
1;0;1;1;0;0;0
1;0;1;1;0;0;0
3;0;0;0;0;0;0
4;0;0;1;0;0;0
3;1;0;1;0;0;0
4;0;0;0;0;0;0
3;0;1;0;0;0;0
1;1;0;0;0;0;0
4;0;1;0;0;1;0
1;0;1;0;0;0;1
1;1;0;0;0;0;1
1;0;1;1;0;0;0
3;0;1;0;0;0;0
3;1;1;0;1;0;0
4;0;1;0;1;0;0
1;0;0;0;0;0;0
1;1;1;1;0;0;1
1;1;0;0;0;0;0
4;0;0;0;0;0;0
2;0;0;0;0;1;1
4;1;0;1;0;0;0
2;0;1;0;0;0;1
3;0;1;1;0;0;0
4;0;0;1;1;0;0
2;1;0;0;0;0;1
4;0;0;0;1;0;0
1;0;0;1;0;0;1
2;1;0;0;0;0;1
1;0;0;0;0;0;0
2;1;1;0;0;0;0
2;0;0;1;0;1;1
1;0;0;0;0;0;0
4;0;0;0;1;0;0
2;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;0;1;0;0;0
1;0;1;1;0;0;0
2;1;0;1;0;1;1
4;0;0;0;1;0;0
2;0;0;0;0;0;0
4;0;0;0;0;0;0
1;1;0;0;0;0;0
4;1;1;1;0;0;0
2;0;0;1;0;0;0
4;0;0;0;0;0;0
3;1;0;0;0;1;1
2;0;0;0;0;0;0
2;0;1;0;0;0;0
1;0;0;0;0;0;0
4;0;0;0;0;0;0
1;0;1;0;0;1;0
4;0;0;0;0;0;0
3;1;0;0;0;0;1
4;0;0;0;0;0;0
4;0;0;1;0;0;0
2;0;0;0;0;0;0
4;0;0;0;0;0;0
1;1;0;0;0;0;1
4;0;1;1;0;0;0
3;0;0;0;0;0;1
4;0;0;0;0;1;1
1;0;0;0;1;0;0
2;0;1;0;0;0;0
4;0;1;1;1;0;0
1;1;0;0;1;0;0
4;0;1;0;0;0;0
1;1;0;0;0;0;0
4;0;0;0;0;0;0
1;0;0;0;0;0;0
2;1;0;0;0;0;0
3;0;0;0;0;0;0
1;0;1;0;0;0;0
4;0;1;0;0;0;0
4;1;0;1;0;0;0
4;0;0;0;0;0;0
4;1;1;0;0;0;0
1;0;0;0;0;0;0
2;0;0;1;1;0;0
1;1;0;1;0;0;0
1;0;0;1;0;0;0
2;1;0;0;0;0;0
3;0;0;0;0;0;0
2;1;1;0;0;0;0
1;0;1;0;0;0;0
2;0;0;0;0;0;0
1;1;0;0;0;0;0
4;1;0;0;0;0;1
4;0;1;1;0;0;0
2;0;0;0;1;0;0
4;0;0;0;1;0;0
1;0;0;0;0;0;1
4;0;0;0;0;0;0
2;0;0;0;0;0;0
4;0;0;0;1;0;0
2;1;0;0;0;0;0
4;0;0;0;0;0;0
1;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;1;0
2;0;0;0;0;0;0
4;0;0;1;0;0;0
1;1;0;1;0;0;0
4;0;0;0;0;0;0
4;0;1;0;0;0;1
4;0;0;0;0;0;0
3;1;1;1;0;0;0
1;0;1;0;0;0;1
3;0;1;1;0;1;1
4;0;0;0;1;0;0
4;1;0;0;0;0;0
1;0;0;1;0;0;0
2;1;0;1;0;0;0
4;0;0;1;0;0;0
1;0;0;0;0;0;1
1;0;1;0;0;0;0
4;0;1;0;0;0;0
4;1;1;1;0;0;0
2;1;0;1;0;1;0
2;0;0;0;0;1;0
1;1;0;0;0;0;0
2;0;1;0;0;0;0
4;0;0;0;0;0;0
1;0;0;0;0;0;0
4;0;1;0;0;0;0
4;0;0;1;1;0;1
3;0;0;0;0;0;0
1;0;1;0;0;0;0
4;0;1;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;1;1;1;0;0
2;0;0;1;0;0;0
1;1;1;0;0;0;0
1;1;0;0;0;0;0
4;0;1;0;1;0;0
3;0;1;0;0;0;0
2;1;1;0;1;1;0
4;1;1;1;0;0;0
2;1;0;0;0;1;0
1;1;0;0;0;1;0
1;0;0;0;0;0;0
2;0;1;0;0;0;0
4;1;0;0;1;0;0
2;0;0;0;0;0;0
4;1;0;0;1;0;0
2;0;0;0;0;0;1
4;0;0;0;0;0;0
2;0;0;0;0;0;0
1;1;0;0;0;1;0
3;0;0;1;0;0;0
4;0;0;0;0;0;0
1;0;0;1;0;1;0
4;0;0;0;1;0;0
3;0;1;1;0;0;0
1;0;0;0;0;0;1
1;1;0;1;0;0;1
3;0;0;0;0;0;0
4;1;1;1;0;0;0
2;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;0;1;0;0;0
4;0;0;0;0;0;0
1;1;0;0;0;1;0
2;0;0;0;0;0;1
2;1;0;1;0;0;0
1;0;0;0;0;0;0
3;0;0;0;0;0;0
4;0;1;1;0;0;0
2;1;1;1;0;0;1
3;0;0;0;1;0;0
1;1;1;0;0;0;0
2;0;0;0;0;1;0
1;0;0;1;1;0;0
2;0;0;0;0;0;0
1;0;0;0;0;0;0
2;0;0;0;0;0;0
2;0;0;0;0;0;0
4;0;0;0;0;0;0
2;0;0;0;0;0;0
1;1;0;0;0;1;0
4;0;0;0;0;0;1
1;0;0;1;0;0;0
4;0;1;0;0;0;0
4;1;0;1;0;0;0
4;0;0;0;0;1;0
4;0;0;0;0;0;0
2;0;0;0;1;0;0
1;0;0;0;0;0;0
4;0;0;0;0;0;0
4;1;0;0;1;0;0
4;0;0;0;1;0;0
1;0;0;0;0;0;0
4;0;1;0;0;0;0
1;0;0;0;0;0;0
4;0;0;0;1;0;0
1;0;0;0;0;0;0
1;0;0;1;0;0;0
3;1;1;1;0;0;0
4;0;0;0;0;0;0
2;0;0;0;0;0;0
3;0;0;0;0;0;0
2;0;0;1;0;0;0
4;0;0;0;1;0;0
4;0;0;0;0;0;0
2;1;1;1;1;0;0
2;1;0;0;0;0;0
3;1;0;0;0;0;1
4;1;1;0;0;0;0
3;0;0;0;0;0;0
4;1;0;0;0;0;0
2;0;0;0;0;0;0
4;0;0;1;0;0;1
1;0;0;0;0;1;1
1;0;0;0;0;0;0
1;0;0;0;0;0;0
4;0;0;0;0;0;0
1;1;0;0;0;0;1
1;0;0;0;0;0;1
4;1;0;0;0;0;0
3;0;0;0;0;0;0
1;1;0;1;0;0;0
4;0;0;0;0;0;0
4;0;0;0;1;0;0
4;1;0;0;0;1;1
1;0;0;0;0;0;0
1;0;0;1;0;0;0
4;0;0;1;0;0;0
4;0;0;0;1;1;0
2;0;0;0;0;0;0
3;0;0;0;0;0;0
3;0;0;0;0;0;0
2;1;1;1;0;1;1
2;1;0;0;0;0;0
4;1;0;1;0;0;0
4;1;0;1;1;0;0
1;0;0;0;0;0;0
2;0;0;0;0;0;0
2;0;0;1;0;0;0
4;0;0;0;0;0;1
4;1;0;1;0;0;0
4;0;0;0;1;0;0
2;0;0;0;0;0;0
1;0;0;0;0;0;0
2;1;0;0;0;1;0
2;0;0;0;0;1;0
3;1;0;1;0;0;0
4;0;0;0;0;0;0
2;0;1;0;0;1;0
2;0;0;0;0;0;0
3;0;0;0;0;0;0
4;0;0;1;1;1;0
1;0;0;0;0;0;0
1;0;0;0;0;0;1
3;1;0;0;0;0;0
4;0;0;0;1;0;0
2;0;0;1;0;0;0
1;1;0;0;0;0;0
1;0;0;0;0;0;0
1;0;0;0;0;0;0
4;0;0;0;0;0;0
1;1;0;0;0;0;0
4;0;0;1;1;0;0
3;0;1;1;0;0;0
1;0;0;0;0;0;0
4;1;0;0;1;0;0
4;0;0;0;0;0;0
4;0;1;1;1;0;0
4;0;0;0;0;0;0
1;1;0;0;0;1;0
1;0;1;1;0;0;0
1;1;0;0;0;0;0
4;1;1;1;0;0;0
3;0;0;1;0;0;0
1;0;0;0;0;0;0
3;0;0;0;1;0;0
1;1;0;1;0;0;0
3;1;0;0;0;0;0
1;0;0;0;0;0;0
1;0;0;0;0;0;0
1;0;0;0;0;0;0
1;1;0;1;1;0;0
3;0;0;1;0;1;0
1;1;0;0;0;1;0
2;0;0;1;0;0;1
4;0;0;0;0;0;0
1;0;1;0;0;0;0
2;0;0;0;0;0;0
1;1;0;0;0;0;0
4;0;1;0;0;0;0
4;0;0;1;1;0;0
2;0;0;0;0;1;0
4;0;0;0;0;0;0
3;0;0;0;0;0;0
3;0;0;0;0;0;0
2;0;0;0;0;0;0
1;0;0;0;0;0;0
4;0;0;0;0;0;0
1;1;0;1;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
3;0;0;0;0;0;0
1;1;0;0;0;1;0
2;0;0;0;0;0;0
2;0;0;1;0;0;0
4;0;0;0;0;0;0
4;1;1;0;0;0;0
2;1;0;0;0;0;0
2;0;0;0;0;0;0
4;0;0;0;0;0;0
2;0;0;0;0;0;0
3;0;1;0;0;0;0
4;0;1;0;0;0;0
4;0;0;0;1;0;0
3;0;0;0;0;1;0
3;0;0;0;0;0;0
4;0;1;1;0;0;0
3;0;0;1;0;0;0
3;0;0;0;1;0;0
1;0;0;0;0;0;0
3;0;0;1;0;0;0
1;1;0;0;0;1;0
4;0;0;0;0;0;0
3;0;1;1;0;0;0
2;1;0;0;1;1;0
4;0;0;0;0;0;0
3;1;0;0;0;0;0
1;0;1;1;0;0;0
3;1;1;1;0;0;0
1;0;0;0;0;0;0
3;1;0;0;0;0;0
4;0;0;0;0;0;0
3;1;0;0;0;1;0
1;1;0;1;0;0;0
2;0;0;0;0;0;0
4;0;1;0;1;0;0
1;0;0;0;0;0;0
1;0;0;0;0;0;0
3;1;1;1;0;0;0
1;0;0;0;1;0;0
2;0;0;0;0;0;0
1;0;1;1;0;1;1
2;0;0;1;1;0;0
3;1;0;0;0;0;0
2;1;0;1;0;1;0
1;0;0;0;0;0;0
4;0;1;1;1;0;0
4;0;1;0;0;0;0
4;0;0;0;0;0;0
4;0;1;0;0;0;0
4;0;0;0;1;0;0
4;0;0;0;0;0;0
4;0;0;1;0;0;0
3;0;0;0;0;0;0
1;0;0;0;0;1;0
3;0;0;0;0;0;0
4;0;0;1;0;0;0
3;1;1;0;1;0;1
4;0;0;1;0;1;0
1;0;0;1;0;0;0
1;0;0;0;0;0;0
1;1;0;0;0;0;0
4;0;0;0;1;0;0
2;1;0;1;0;0;0
2;0;0;0;0;0;0
4;0;0;0;1;0;0
1;0;0;0;0;0;0
4;0;0;0;0;0;0
1;0;0;0;0;0;0
4;0;0;1;0;0;0
4;0;0;0;0;1;1
1;0;0;0;0;0;0
1;1;1;1;0;0;0
4;0;0;0;1;0;0
2;1;0;0;0;1;1
3;1;0;1;0;0;0
4;0;0;0;0;0;0
2;0;0;0;0;0;0
3;0;0;0;0;0;0
4;1;0;0;0;0;0
3;0;0;0;0;1;0
4;0;0;0;0;1;0
4;0;1;0;0;0;0
4;1;0;0;1;0;0
1;0;0;0;0;0;0
4;1;0;0;0;0;0
2;1;0;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;1
4;0;1;0;1;0;0
2;0;0;1;0;0;0
3;0;0;0;0;0;0
4;1;0;0;0;0;0
2;0;0;0;0;0;0
2;0;0;0;0;0;0
1;1;1;1;0;0;0
3;1;0;0;0;0;0
1;0;0;0;0;0;0
4;0;1;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;1;0
4;0;0;0;1;0;0
1;0;0;0;0;0;0
3;1;0;0;0;0;0
4;0;0;0;0;0;0
4;1;0;1;0;1;0
1;0;0;1;0;0;0
4;1;0;1;0;0;0
4;0;0;0;0;0;0
4;1;1;0;1;0;0
4;0;0;1;1;0;0
4;0;0;0;0;0;0
3;0;0;0;0;0;0
3;1;1;1;1;0;0
3;0;0;0;0;0;0
4;0;1;1;0;0;1
1;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
3;0;0;0;0;0;0
2;0;0;0;0;1;0
2;0;0;0;0;0;0
2;0;0;0;0;0;0
4;1;0;0;0;0;0
2;0;0;0;0;0;0
2;0;0;0;0;0;0
3;0;0;0;0;0;0
4;0;1;0;0;0;0
2;0;0;0;0;0;1
3;0;0;0;0;0;0
3;0;0;0;0;0;0
4;1;1;0;0;0;0
4;0;0;0;0;0;0
2;0;0;0;0;1;0
4;0;0;0;1;0;0
2;1;0;0;0;1;0
4;0;1;0;0;0;0
3;0;0;0;0;0;0
3;0;0;0;0;0;0
4;0;0;0;1;0;0
4;0;0;0;1;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
3;0;0;0;0;0;0
4;1;0;0;0;0;0
4;1;1;0;0;0;0
4;0;0;0;0;0;0
4;1;0;1;0;0;0
4;0;0;1;0;0;0
4;0;1;0;1;0;0
4;0;0;0;1;0;0
3;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
3;0;0;0;0;0;0
4;1;0;0;1;0;0
3;0;1;0;0;0;0
4;0;0;1;0;0;0
3;0;0;0;0;0;0
3;1;1;0;0;0;1
4;0;0;1;0;0;0
3;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;1;0;0;0;0
4;0;0;1;0;0;0
4;0;0;1;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;1
4;0;0;0;1;0;0
3;0;1;0;0;0;0
4;0;0;0;0;0;0
3;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;1;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;1;1;1;0;0
4;1;1;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
4;1;0;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
4;0;0;0;0;0;0
1;0;0;0;0;0;0
3;0;0;0;0;0;0
1;0;0;0;0;0;0
1;0;0;0;0;1;0
1;0;0;0;0;1;0
1;0;0;0;0;0;0
2;1;0;0;0;1;0
1;1;1;0;0;1;0
2;0;0;0;0;0;0
1;0;0;0;0;0;0
1;1;0;0;0;0;0
1;1;0;0;0;0;0
3;0;1;1;0;0;1
1;1;0;0;0;0;0
4;0;0;0;0;1;0
2;0;0;0;0;1;0
1;0;1;0;0;1;0
1;0;0;0;0;0;0
1;0;0;0;0;1;0
1;1;0;0;0;0;0
1;0;0;0;0;0;0
1;1;0;0;0;0;0
2;0;0;0;0;1;1
2;0;0;0;0;0;1
2;0;0;0;0;0;0
1;0;0;0;0;0;1
2;0;0;0;0;0;0
2;0;0;0;0;0;0
2;0;1;1;0;0;0
1;0;0;0;0;0;0
2;0;0;0;0;0;1
1;0;0;0;0;0;0
2;1;0;0;0;1;0
1;0;0;0;0;0;0
3;1;0;0;0;1;0
3;0;0;0;0;0;0
1;1;0;1;0;0;0
2;0;0;0;0;0;0
2;1;0;0;0;1;0
1;0;0;1;0;0;1
3;0;0;0;0;0;1
2;0;0;0;0;0;0
1;1;0;0;0;0;0
1;0;0;0;0;1;0
2;0;1;1;0;0;0
4;0;0;0;0;1;1
1;1;0;0;0;1;0
2;0;0;0;0;0;0
1;0;0;0;0;0;0
3;0;0;0;0;0;0
2;1;0;0;0;1;0
1;0;0;0;0;0;0
2;0;0;0;0;0;0
1;0;0;0;0;0;0
1;0;0;0;0;0;0
3;0;0;0;0;1;0
3;0;0;0;0;0;0
1;0;0;0;0;0;0
4;1;0;0;0;1;0
3;0;0;0;0;1;0
1;0;0;0;0;0;1
2;0;0;0;1;0;0
3;0;0;0;0;1;0
1;0;0;0;0;1;0
2;1;0;0;0;1;0
1;1;0;0;0;0;1
1;0;1;1;0;0;0
1;0;0;0;0;0;0
2;0;0;0;0;1;0
2;1;0;0;0;1;0
2;0;0;0;0;1;0
2;0;0;0;0;0;0
1;0;0;0;0;0;0
4;0;0;0;0;0;0
3;0;0;1;0;1;0
3;0;0;0;0;0;0
2;1;0;0;0;0;1
2;0;0;0;0;0;0
2;1;0;0;0;0;1
1;0;0;1;0;0;0
2;1;0;0;0;1;0
3;1;0;1;0;1;0
1;0;0;0;0;1;0
1;0;0;0;0;1;0
2;0;0;0;0;1;0
1;0;0;0;0;0;0
1;1;0;0;0;0;0
1;1;0;0;0;0;0
2;0;0;0;0;0;0
1;1;0;0;0;1;0
2;1;0;0;0;1;0
2;1;0;0;0;1;0
4;0;0;1;1;0;0
4;0;0;0;0;0;0

Primarily the question is, how to calculate the percentages for each group and each symptom. Thank you :-)

CodePudding user response:

One option would be to compute the counts and percentages manually before passing the data to ggplot():

library(ggplot2)
library(tidyr)
library(dplyr)

symptoms %>% 
  pivot_longer(cols = c(symptom_1, symptom_2, symptom_3, symptom_4, symptom_5, symptom_6), names_to = "name", values_to = "value") %>%
  group_by(name, group) %>%
  summarise(n = sum(value)) %>%
  mutate(pct = n / sum(n)) %>%
  ggplot(aes(x = name, y = n, fill = factor(group)))  
  geom_col()  
  geom_text(aes(label = scales::percent(pct, accuracy = .1)), position = position_stack(vjust = .5))

enter image description here

  • Related