Already got my plot working. Thanks to @StatSteph, I today learned how to use
y2 = ggplot(df, aes(x=as.factor(Subgroup), y=Mean, fill=Group)) + theme_classic() + labs(y = 'Y') + geom_bar(position=position_dodge(), stat="identity", colour='black') + geom_errorbar(aes(ymin= Mean - Error, ymax= Mean + Error), width=.2, position=position_dodge(.9)) y2 + facet_wrap(~Name, nrow=1, strip.position = "bottom") + theme(strip.placement = "outside")
The next thing that I have to do is to add significance bars between
For example, the p-value for within
Group B is
p = 0.0012 (**) while between the
Subgroup 1 of
Groups A and D is
p = 0.00015(***).
Normally, what I usually do in normal barplot is to define the following dataframe:
groupB.1vs.2 <- tibble( x = c(, 0.77, 1.23, 1.23), y = c(4.5, 4.8, 4.8, 3.6) ) ## p = 0.0012 (**)
and add it to the plot, like the following:
y2 = y2 + annotate("text", x = 1, y = 2.5, label = "***", size = 6, color = "black") + geom_line(data = groupB.1vs.2 , aes(x= x, y = y, group=1), inherit.aes = F)
I know the above code is tedious but it works like charm always. And I have control over the aesthetics of the significance bars, unlike the pre-packaged libraries.
Is it possible to manually add something like this in
y2 considering that it uses
Thank you for the help!