I'm posting this as my first question, so bear with me. I have this data frame.
df <- data.frame(Class = c("Burkholderiales", "Burkholderiales", "Burkholderiales", "unclassified", "Burkholderiales", "Burkholderiales", "Rhodocyclales", "Burkholderiales", "Burkholderiales", "Burkholderiales", "Rhodocyclales", "Rhodocyclales", "Burkholderiales", "Rhodocyclales", "Rhodocyclales", "Rhodocyclales", "Burkholderiales", "Rhodocyclales", "Rhodocyclales", "Rhodocyclales", "Burkholderiales", "Burkholderiales", "Burkholderiales", "Burkholderiales", "Rhodocyclales", "Rhodocyclales", "Burkholderiales", "Rhodocyclales", "Burkholderiales", "Rhodocyclales"),
Genus = c("unclassified", "unclassified", "unclassified", "unclassified", "unclassified", "unclassified", "unclassified", "unclassified", "unclassified", "Paucibacter", "Dechloromonas", "unclassified", "unclassified", "unclassified", "Dok59", "Dechloromonas", "Hydrogenophaga", "Dechloromonas", "Uliginosibacterium", "Propionivibrio", "Hydrogenophaga", "unclassified", "Hydrogenophaga", "unclassified", "Sulfuritalea", "Dechloromonas", "unclassified", "Propionivibrio", "unclassified", "Dechloromonas"))
I've made a plot using this code
library("ggplot2")
ggplot(df, aes(x = Class, fill = Genus)) +
geom_bar() +
coord_flip()
And it looks like this
I want to subcategorize the legend so that t has the name of the class and below it has each color for each genus. For instance, it may look like two legends, one for Rhodocyclales and one for Burkholderiales with the respective genera and colors under them. I'd like to keep the order of colors if possible. Is this possible with ggplot2?