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
Changed the geom_text
call thus:
ggplot(abun,aes(x=status,y=freq,fill=Order))+
geom_bar(stat="identity",col="black")+
ylab("Frequency (%)")+
geom_text(label=c(rev(levels(abun$Order)),rev(levels(abun$Order))),position=position_stack(vjust=0.5))+
theme(text=element_text(size=20,face="bold"),legend.text=element_text(size=12,face="plain"))
yielding:
It seems geom_text
cycles through all factor levels without regard for x
. Fixing this required running through the reversed list twice: label=c(rev(levels(abun$Order)),rev(levels(abun$Order)))
So for n factor levels under the x
mapping, include c(rev(levels(LabelText)))
n times.
Thanks to @Lyngbakr for getting me on the right track.