title: ggplot2 Heatmap discrete legend with break points
body: <p>I am using ggplot2 to produce a heatmap. The annotation of the legend contains intervals, however I would like to have break points like -100,-10,-5,0,5,10,100 marking the breakpoints between the intervals.
  Is it possible to manipulate legend labels and legend label positions ?</p>
  
  <pre><code>daf &lt;- data.frame(row=(rep(paste(LETTERS[1:5],1:50,sep=""),2)),col=c(rep("A",50),rep("B",50)),val=runif(100,-20,20))
  
  intervals &lt;- c(100,10,5,0,-5,-10,-100)
  binned &lt;- cut(daf$val,breaks=intervals)
  colfunc &lt;- colorRampPalette(c("yellow", "black", "steelblue"))
  colgroups &lt;- colfunc(length(levels(binned)))
  res &lt;- colgroups[as.integer(binned)]
  res &lt;- factor(res,levels=colgroups)
  
  
  p &lt;- ggplot(daf,aes(x=col, y=row,fill=res)) + 
    geom_tile(color="white") +
    scale_fill_manual(values=levels(res),labels=levels(binned))
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/vfdwO.png" alt="enter image description here"></p>
  
  <p><img src="https://i.stack.imgur.com/F9C2u.png" alt="enter image description here"></p>