title: ggplot2 object in Phyloseq - how to reorder the x axis entries?
body: <pre><code>mapfile = "map_soil_final3.txt"
  map = import_qiime_sample_data(mapfile)
  print(map)
  
  tree = read_tree("rep_set.tre")
  
  biom = "otu_table_15000_json.biom"
  biomfile = import_biom(biom,parseFunction=parse_taxonomy_default)
  
  testdata = merge_phyloseq(biomfile,tree,map)
  print(testdata)
  
  p = plot_bar(testdata, "Order", fill = "Phylum", facet_grid = ~Description) +
               ylab("Percentage of Sequences") 
  relative_ab = p + geom_bar(aes(color = Phylum, fill = Phylum),
                             stat = "identity", position = "stack") 
  relative_ab
  </code></pre>
  
  <p><a href="https://i.stack.imgur.com/eLKOQ.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/eLKOQ.png" alt="Sampleplot"></a></p>
  
  <p>What I have here are some plots of various taxa. Each one of the bars represents the Order (the names on the x axis) of an organism within a Phlyum (colors). Right now the Order is arranged in alphabetical order but this causes the Phlya to be all over the place. It would nice if I could group the Order together based on Phylum. So essentially all the colors would group together. Can someone assist me with this? Thanks!</p>
  
  <p><a href="https://www.dropbox.com/sh/5xn5si352bgslg0/AADyI_ON39_55qvNdvB167Lga?dl=0" rel="nofollow noreferrer" title="Sample Data">https://www.dropbox.com/sh/5xn5si352bgslg0/AADyI_ON39_55qvNdvB167Lga?dl=0</a></p>
  
  <pre><code>&gt; str(ent10)
  Formal class 'phyloseq' [package "phyloseq"] with 5 slots
  ..@ otu_table:Formal class 'otu_table' [package "phyloseq"] with 2    slots
  .. .. ..@ .Data        : num [1:20, 1:73] 0 11 86 237 11 8 16 4 15 19   ...
  .. .. .. ..- attr(*, "dimnames")=List of 2
  .. .. .. .. ..$ : chr [1:20] "4128270" "2473794" "811074" "4388819" ...
  .. .. .. .. ..$ : chr [1:73] "AB17S" "UR6S" "AB4S" "AB8S" ...
  .. .. ..@ taxa_are_rows: logi TRUE
  ..@ tax_table:Formal class 'taxonomyTable' [package "phyloseq"] with 1 slot
  .. .. ..@ .Data: chr [1:20, 1:7] "k__Bacteria" "k__Bacteria"  "k__Bacteria" "k__Bacteria" ...
  .. .. .. ..- attr(*, "dimnames")=List of 2
  .. .. .. .. ..$ : chr [1:20] "4128270" "2473794" "811074" "4388819" ...
  .. .. .. .. ..$ : chr [1:7] "Kingdom" "Phylum" "Class" "Order" ...
  ..@ sam_data :'data.frame': 73 obs. of  4 variables:
  Formal class 'sample_data' [package "phyloseq"] with 4 slots
  .. .. ..@ .Data    :List of 4
  .. .. .. ..$ : Factor w/ 73 levels "AB10S","AB11S",..: 8 70 13 17 9 11   66 15 12 22 ...
  .. .. .. ..$ : Factor w/ 73 levels "D1_pb_s.fasta",..: 67 45 34 50 70 26 29 42 30 14 ...
  .. .. .. ..$ : Factor w/ 4 levels "Ash_Basins","Pond_B",..: 1 4 1 1 1 1 4 1 1 2 ...
  .. .. .. ..$ : Factor w/ 31 levels "D1","D10","D11",..: 29 21 19 23 30 17 17 21 18 13 ...
  .. .. ..@ names    : chr [1:4] "X.SampleID" "InputFileName" "Description" "TagCombo"
  .. .. ..@ row.names: chr [1:73] "AB17S" "UR6S" "AB4S" "AB8S" ...
  .. .. ..@ .S3Class : chr "data.frame"
  ..@ phy_tree :List of 5
  .. ..$ edge       : int [1:38, 1:2] 21 22 23 23 22 24 25 25 24 21 ...
  .. ..$ Nnode      : int 19
  .. ..$ tip.label  : chr [1:20] "4128270" "2473794" "811074" "4388819" ...
  .. ..$ edge.length: num [1:38] 0.00016 0.02274 0.3467 0.80367 0.00564 ...
  .. ..$ node.label : chr [1:19] "1.000" "0.815" "0.922" "0.860" ...
  .. ..- attr(*, "class")= chr "phylo"
  .. ..- attr(*, "order")= chr "cladewise"
  ..@ refseq   : NULL
  </code></pre>