title: Creating Patches when x-axis uses datetime coordinates
body: <p>I'm generating some plots based on data that I'm holding in a pandas DataFrame; a snapshot of what this data (call it <code>data</code>)looks like is below:</p>
  
  <pre><code>                     CIG  CLD  DPT  OBV  P06  P12  POS  POZ  Q06  Q12  TMP  \
  2010-10-01 18:00:00    8   CL   54    N  NaN  NaN    0    0  NaN  NaN   85   
  2010-10-01 21:00:00    8   CL   50    N  NaN  NaN    0    0  NaN  NaN   89   
  2010-10-02 00:00:00    8   CL   51    N    0  NaN    0    0    0  NaN   81   
  2010-10-02 03:00:00    8   CL   52    N  NaN  NaN    0    0  NaN  NaN   67   
  2010-10-02 06:00:00    8   CL   52    N    0  NaN    0    0    0  NaN   62   
  2010-10-02 09:00:00    8   CL   51    N  NaN  NaN    0    0  NaN  NaN   59   
  ...
  </code></pre>
  
  <p>The idea for one of the plots is to overlay traces of the <code>TMP</code> and <code>DPT</code> fields (generated by using <code>data['TMP'].plot()</code>) on top of shading corresponding to the <code>CLD</code> field. So for instance, the block of time between <code>2010-10-01 18:00:00</code>-<code>2010-10-01 19:30:00</code> might be a light gray, and if the next entry for <code>CLD</code> were something else other than "CL", then the block <code>2010-10-01 19:30:00</code>-<code>2010-10-01 22:30:00</code> might be a darker color, that way I can see how the <code>CLD</code> field changes contemporaneously with the other fields.</p>
  
  <p>My idea was to use a <code>Rectangle</code> patch from <code>matplotlib.Patches</code> to accomplish this shading. Since I'm basing the bounds on of the plot on the trace of <code>TMP</code> and <code>DPT</code>, I'll always know exactly what the height of the patch is, and I also always know its left boundary and its width - but the wrinkle is that I know them in <code>datetime</code> coordinates, not in x-y coordinates. So, if <code>bnd_left</code> is the left boundary as a <code>datetime</code>, <code>ylo</code> and <code>height</code> are floats, and <code>width</code> is a <code>datetime.timedelta</code>, I'm trying to make a patch like,</p>
  
  <pre><code>shading_patch = Rectangle([bnd_left, ylo], width, height)
  </code></pre>
  
  <p>But this doesn't work. There is a <code>TypeError</code> when the patch tries to create itself, since one cannot add a <code>float</code> and a <code>datetime.timedelta</code>. In the documentation, I can't find anything on how to transform the <code>datetime</code> coordinates to floats in the native transform of the plot I created by using the <code>DataFrame.plot()</code> method when I created the traces I'm trying to draw underneath.</p>
  
  <p>Is there any simple way to draw patches on those plots generated with <code>DataFrame.plot()</code>?</p>