I\'m trying to make a stacked bar chart of microbiome abundance (dataset at the end). Since there are a lot of classes, it\'s hard to tell the difference between colors, so I wa
As @Lyngbakr suggested you can fix this with the label
aesthetic either in the main plot function or the geom_text
as below.
ggplot(abun, aes(x = status, y = freq, fill = Order)) +
geom_bar(stat = "identity", col = "black") +
ylab("Frequency (%)") +
geom_text(aes(label = Order), position = position_stack(vjust = 0.5)) +
theme(text = element_text(size = 20, face = "bold"), legend.text = element_text(size = 12, face = "plain"))
This occurs becasue the default grouping in geom_text
(see:
http://ggplot2.tidyverse.org/reference/aes_group_order.html) does not work here and needs to be specified with an aesthetic.
I had a very similar problem myself: Out of order text labels on stack bar plot (ggplot)