title: Changing the order of dodged bars in ggplot2 barplot
body: <p>I have a dataframe <code>df.all</code> and I'm plotting it in a bar plot with ggplot2 using the code below. I'd like to make it so that the order of the dodged bars is flipped. That is, so that the bars labeled "Singular" come before the bars labeled "Plural".</p>
  
  <pre><code>ggplot(df.all, aes(gram, V1, fill=number)) + 
      geom_bar(stat="identity", position="dodge") + 
      scale_x_discrete(labels=c("Grammatical","Ungrammatical")) +
      scale_y_continuous(formatter="percent", limits=c(0,1)) +
      facet_grid(. ~ experiment) + 
      scale_fill_hue("Attractor", breaks=c("S","P"), labels=c("Singular","Plural"))
  </code></pre>
  
  <p>I've tried doing <code>levels(df.all$number) = c("S", "P")</code> thinking that maybe ggplot uses the order of the levels to decide plotting order, but that didn't work. I'm not sure what else to try. Any ideas?</p>
  
  <p>The contents of <code>df.all</code>, in case it's useful:</p>
  
  <pre><code>&gt; df.all
    number gram     experiment        V1
  1      S    G BERIMBAU_AGR_A 0.8133333
  2      S    G BERIMBAU_AGR_B 0.8658537
  3      S    U BERIMBAU_AGR_A 0.5436242
  4      S    U BERIMBAU_AGR_B 0.4597701
  5      P    G BERIMBAU_AGR_A 0.8580645
  6      P    G BERIMBAU_AGR_B 0.8536585
  7      P    U BERIMBAU_AGR_A 0.3087248
  8      P    U BERIMBAU_AGR_B 0.3975904
  
  &gt; str(df.all)
  'data.frame':   8 obs. of  4 variables:
   $ number    : Factor w/ 2 levels "S","P": 2 2 2 2 1 1 1 1
    ..- attr(*, "scores")= num [1:2(1d)] 0 -1
    .. ..- attr(*, "dimnames")=List of 1
    .. .. ..$ : chr  "P" "S"
   $ gram      : Factor w/ 2 levels "G","U": 1 1 2 2 1 1 2 2
   $ experiment: Factor w/ 4 levels "BERIMBAU_AGR_A",..: 1 4 1 4 1 4 1 4
   $ V1        : num  0.813 0.866 0.544 0.46 0.858 ...
  </code></pre>