I'd like to add a total count on top of a stacked barplot in addition to the number of count in the different categories I have.
Here is my plot :
So at 10 (First on the x-axis) I would have a 5, then again a 5, etc.
I found many post about that but none of them allowed me to solve my problem. The closest I got is maybe this one : How to add labels with observation count to stat_summary ggplot? But the thing is that I need to get a count of string as "factors"
This is the code for the plot above:
ggplot(my_df, aes(x=percentage_int, fill = score)) +
geom_bar(aes(y = (..count..))) +
geom_text(stat='count', aes(label=..count..),position = position_stack(vjust = 0.5))
And this is the code I tried by adapting from the post above :
label_df = my_df %>% group_by(percentage_int) %>% summarise(n=n())
ggplot(my_df, aes(x=percentage_int, fill = score)) +
geom_bar(aes(y = (..count..))) +
geom_text(stat='count', aes(label=..count..),position = position_stack(vjust = 0.5)) +
geom_text(data=label_df,aes(fill = score, x = percentage_int, label=n))
I'm not quite sure to understand why it's not working...
Looks like I can't avoid creating an extra df for this...
A solution with stat_summary would be good too since I also tried it. Thx !
here are my data test:
structure(list(percentage_int = structure(c(13L, 17L, 10L, 9L,
14L, 8L, 19L, 11L, 18L, 12L, 6L, 15L, 4L, 16L, 5L, 2L, 20L, 3L,
7L, 13L, 17L, 18L, 12L, 4L, 11L, 3L, 14L, 2L, 19L, 15L, 7L, 16L,
6L, 8L, 5L, 20L, 10L, 9L, 19L, 8L, 9L, 11L, 12L, 20L, 13L, 14L,
10L, 18L, 15L, 16L, 3L, 5L, 17L, 4L, 2L, 7L, 6L, 17L, 5L, 19L,
7L, 18L, 9L, 20L, 14L, 16L, 11L, 8L, 3L, 13L, 10L, 6L, 4L, 15L,
12L, 2L, 16L, 18L, 19L, 14L, 13L, 20L, 7L, 17L, 15L, 2L, 9L,
5L, 3L, 4L, 12L, 10L, 6L, 11L, 8L, 6L, 19L, 13L, 5L, 12L), .Label = c("0",
"10", "15", "20", "25", "30", "35", "40", "45", "5", "50", "55",
"60", "65", "70", "75", "80", "85", "90", "95"), class = "factor"),
score = c("Rscore = 0.96", "Rscore = 0.96", "Rscore = 0.96",
"Rscore = 0.96", "Rscore = 0.96", "Rscore = 0.96", "0.8 > R score >= 0.7",
"Rscore = 0.96", "0.8 > R score >= 0.7", "Rscore = 0.96",
"Rscore = 0.96", "Rscore = 0.96", "Rscore = 0.96", "Rscore = 0.96",
"Rscore = 0.96", "Rscore = 0.96", "0.8 > R score >= 0.7",
"Rscore = 0.96", "Rscore = 0.96", "Rscore = 0.96", "Rscore = 0.96",
"0.8 > R score >= 0.7", "Rscore = 0.96", "Rscore = 0.96",
"Rscore = 0.96", "Rscore = 0.96", "Rscore = 0.96", "Rscore = 0.96",
"0.5 > R score >= 0.2", "Rscore = 0.96", "Rscore = 0.96",
"Rscore = 0.96", "Rscore = 0.96", "Rscore = 0.96", "Rscore = 0.96",
"0.8 > R score >= 0.7", "Rscore = 0.96", "Rscore = 0.96",
"0.8 > R score >= 0.7", "Rscore = 0.96", "0.8 > R score >= 0.7",
"0.8 > R score >= 0.7", "0.8 > R score >= 0.7", NA, "0.8 > R score >= 0.7",
"0.8 > R score >= 0.7", "R score < 0.2", "0.8 > R score >= 0.7",
"Rscore = 0.96", "Rscore = 0.96", "0.8 > R score >= 0.7",
"0.8 > R score >= 0.7", "R score < 0.2", "Rscore = 0.96",
"0.8 > R score >= 0.7", "0.8 > R score >= 0.7", "0.8 > R score >= 0.7",
"0.8 > R score >= 0.7", "Rscore = 0.96", "0.8 > R score >= 0.7",
"Rscore = 0.96", "0.8 > R score >= 0.7", "Rscore = 0.96",
NA, "Rscore = 0.96", "0.8 > R score >= 0.7", "Rscore = 0.96",
"Rscore = 0.96", "Rscore = 0.96", "Rscore = 0.96", "Rscore = 0.96",
"Rscore = 0.96", "Rscore = 0.96", "0.8 > R score >= 0.7",
"Rscore = 0.96", "Rscore = 0.96", "0.8 > R score >= 0.7",
"0.8 > R score >= 0.7", "0.8 > R score >= 0.7", "Rscore = 0.96",
"Rscore = 0.96", NA, "Rscore = 0.96", "0.8 > R score >= 0.7",
"Rscore = 0.96", "Rscore = 0.96", "Rscore = 0.96", "Rscore = 0.96",
"Rscore = 0.96", "Rscore = 0.96", "Rscore = 0.96", "Rscore = 0.96",
"Rscore = 0.96", "Rscore = 0.96", "Rscore = 0.96", "Rscore = 0.96",
"0.5 > R score >= 0.2", "Rscore = 0.96", "Rscore = 0.96",
"0.9 > R score >= 0.8")), row.names = c("1410", "1411", "1412",
"1413", "1414", "1415", "1416", "1417", "1418", "1419", "1420",
"1421", "1422", "1423", "1424", "1425", "1426", "1427", "1428",
"1448", "1449", "1450", "1451", "1452", "1453", "1454", "1455",
"1456", "1457", "1458", "1459", "1460", "1461", "1462", "1463",
"1464", "1465", "1466", "1619", "1620", "1621", "1622", "1623",
"1624", "1625", "1626", "1627", "1628", "1629", "1630", "1631",
"1632", "1633", "1634", "1635", "1636", "1637", "1771", "1772",
"1773", "1774", "1775", "1776", "1777", "1778", "1779", "1780",
"1781", "1782", "1783", "1784", "1785", "1786", "1787", "1788",
"1789", "1828", "1829", "1830", "1831", "1832", "1833", "1834",
"1835", "1836", "1837", "1838", "1839", "1840", "1841", "1842",
"1843", "1844", "1845", "1846", "1885", "1886", "1887", "1888",
"1889"), class = "data.frame")