title: ggplot2: change order of display of a factor variable on an axis
body: <p>When I use <code>geom_tile()</code> with <code>ggplot2</code> and discrete scales the labels are in ascending order on the x-axis and in descending order on the y-axis:</p>
  
  <pre><code>#some sample data
  a &lt;- runif(400)
  a &lt;- matrix(a, ncol=20)
  colnames(a) &lt;- letters[seq( from = 1, to = 20 )]
  rownames(a) &lt;- letters[seq( from = 1, to = 20 )]
  a &lt;- melt(a)
  </code></pre>
  
  <p>When I plot the dataframe <code>a</code> this comes out:</p>
  
  <pre><code>ggplot(a, aes(X1, X2, fill = value)) + geom_tile() + 
  scale_fill_gradient(low = "white",  high = "black", breaks=seq(from=0, to=1, by=.1), name="value") + 
  opts(axis.text.x=theme_text(angle=-90, hjust=0)) +
  scale_x_discrete(name="") + scale_y_discrete(name="") 
  </code></pre>
  
  <p>and the coords are labeled differently for x and y:</p>
  
  <p><img src="https://i.stack.imgur.com/OshdS.jpg" alt="enter image description here"></p>
  
  <p>I would like to have the labels sorted from a-z from top to bottom and from left to right. is there a quick way to do this?</p>