I am attempting to plot a single column of data (len) that has three groups (mea, tre, and sex) across six boxplots in a single graph. The data is broken up into the "mea" group first, then subdivided further by "tre," and finally by "sex."
There are plenty of similar questions on StackOverflow (see Plot multiple boxplot in one graph or How to display two groups of boxplots?, but I cannot seem to replicate any of their solutions on my data set.
Probably the closest I've come is using:
dataSummary <- summarySE(my.df, measurevar="len", groupvars=c("sex", "tre", "mea"))
ggplot(dataSummary, aes(x=mea, y=len, fill=sex)) +
+ geom_bar(position=position_dodge(), stat="identity") +
+ geom_errorbar(aes(ymin=len-se, ymax=len+se), width = .2, position=position_dodge(.9))
...but that doesn't give anywhere near the right output (an entire group seems to be missing).
Can anyone provide a solution to fill in what I'm missing?
The dput of my data frame:
structure(list(mea = structure(c(1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L), .Label = c("phe", "mel"), class = "factor"),
tre = structure(c(1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 3L, 3L,
1L, 1L, 1L, 1L, 3L, 2L, 2L, 1L, 3L, 2L, 2L, 2L, 2L, 1L, 2L,
2L, 2L, 2L, 1L, 3L, 2L, 1L, 3L, 1L, 1L, 2L, 3L, 2L, 3L, 1L,
2L, 1L, 1L, 3L, 3L, 2L, 3L, 2L, 3L, 3L, 1L, 2L, 3L, 3L, 1L,
2L, 2L, 2L, 3L, 2L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 2L, 3L,
3L, 3L, 3L), .Label = c("a", "b", "c"), class = "factor"),
sex = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
2L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 1L,
1L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L,
1L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L,
2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L,
1L), .Label = c("m", "f"), class = "factor"), len = c(10.1,
10, 9.4, 11.1, 10.4, 10, 10.4, 11, 9.5, 10, 9.4, 9.2, 10.9,
11.6, 12.2, 10.3, 11, 11.4, 10.5, 10.9, 11, 11, 12, 10.7,
10.1, 11, 10.5, 10.8, 9.9, 11.4, 10, 11.9, 10, 12.2, 12.1,
11.8, 10.8, 10.4, 10.9, 11.7, 10, 10.6, 10.4, 10.9, 11, 9,
9.1, 9.8, 10, 9.9, 10.6, 11.5, 10.4, 10.7, 10.3, 10.6, 10,
11.6, 10.6, 10.7, 10.8, 10.1, 11.4, 10.2, 11.9, 10.2, 11,
9.5, 10.3, 10.8, 10.7, 11.5, 10.7, 9.4, 10, 11.7, 9.9, 10.7,
10, 9.8, 9.2, 10.9, 10.8, 10.6, 8.5, 11.2, 10.9, 10.8, 10.3,
10.2, 11, 10.4, 10.3, 10, 9, 10.5, 10.3, 9.5, 10.9, 11.5,
10.5, 9.5, 10, 10, 11.2, 10.1, 8.8, 10.6, 10, 11.1, 10.9,
10.5, 11.5, 10.5, 10.9, 11.6, 9.8, 10.8, 8.9, 10, 11, 11.8,
11, 11.1, 10.7, 12.1, 10.4, 11.8, 10.5, 8.9, 9.6, 8.7, 10.7,
8.8, 11.7, 9.8, 10.7, 10.6, 10.1, 11.3, 11.6, 11.2, 8.8,
11.2, 9.8, 10.7, 9.1, 10.1, 10.7, 10.1, 11.3, 9.9, 9.9, 10.1,
11.2, 11.1, 12, 11.9, 10.8, 12.1, 12, 13.1, 10.5, 12, 12.5,
12.2, 12, 11.5, 11.1, 10.9, 11.5, 10.5, 12, 13, 11.1, 10.5,
12, 11, 11.5, 13, 13, 11.3, 12, 11.5, 9.1, 13, 11.2, 10.5,
11.9, 12.5, 12, 9, 13, 11, 11.3, 10.5, 11.5, 12.1, 12, 11,
11.8, 11.4, 10.5, 13, 12.5, 12.2, 11.9, 11.4, 11, 11.9, 12,
11.5, 11.9, 10.8, 13, 11.8, 12.9, 12.4, 11.6, 11, 10.3, 13,
10.2, 10.8, 12.7, 11.2, 11.2, 11.1, 11.3, 12.1, 11.9, 13,
11.9)), .Names = c("mea", "tre", "sex", "len"), row.names = c(NA,
-233L), class = "data.frame")