title: matplotlib: fill_between function, how to 'Interpolate' and 'where' correctly?
body: <p>The length of value arrays for my line chart with matplotlib could be irregular, for example:</p>
  
  <pre><code>[18,17,0,0,2]
  [6,4,0,0]
  [3]
  </code></pre>
  
  <p>These are values on a time line, the last being the latest, every value corresponding to a week. Thus this means the second user joined a week later than the first, and the last only joined the last week.</p>
  
  <p>In order to draw a line chart, I fill the smaller arrays with None values (not really relevant to <code>fill_between</code>).</p>
  
  <pre><code>[18, 17, 0, 0, 2]
  [None, None, None, None, 3]
  [None, 6, 4, 0, 0]
  </code></pre>
  
  <p>I am using <code>interpolate=True</code> because, I need to fill the curve if values go to zero.
  However, this has the unintended effect that for people starting later, the filling will also interpolate, starting from 0 to the actual value. 
  <a href="https://i.stack.imgur.com/OmQhG.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/OmQhG.png" alt="fill_between how it looks like now"></a></p>
  
  <p>I need it to only fill the space if there are actual values:
  <a href="https://i.stack.imgur.com/IEqeO.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/IEqeO.png" alt="should be"></a></p>
  
  <p>Can this be done? I looked at the <a href="http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.fill_between" rel="nofollow noreferrer">docs</a> and it says something about the where array.</p>
  
  <p>Here's the structure of my where array for this given chart:</p>
  
  <pre><code>[True, True, False, False, True, False]
  [False, True, True, False, False, False]
  [False, False, False, False, True, False]
  </code></pre>
  
  <p>As you can see I set the first where element to be False for the second value row, but because of "<code>interpolate=True</code>, it will start filling...</p>
  
  <p>(Color codes: first row blue, second row green, third red)</p>
  
  <p>Hope any angel can help on this....</p>
  
  <p>Here's the actual code for the fill:</p>
  
  <pre><code>for i, values in enumerate(time_series):
      ax.plot(x, y[i], ',-', label=label, color=linecolor, markersize=8, fillstyle="full",linewidth=1.5, clip_on=True, zorder=200)
      ax.fill_between(x, 0, zero_y, where=where, color=fillcolors[i], alpha=0.8, edgecolor="white", zorder=zorder[i], interpolate=True)
  </code></pre>
  
  <p>Take note that <code>fill_between</code> actually crashed when fed with <code>None</code> values...I need to "translate" <code>None</code> values to 0...which is further complicating issues maybe...</p>