title: matplotlib two y axes with mixed z order
body: <p>I would like to plot data on two y axes such that some of the data on the second y axis is behind the first y axis graph and part of it is above. Essentially I would like to have use "global" zorder parameter. Is that possible?</p>
  
  <p>Here is a minimal example:</p>
  
  <pre><code>import numpy as np
  import matplotlib.pyplot as plt
  
  # generate data
  x = np.linspace(0,30,30)
  y1 = np.random.random(30)+x
  y2 = np.random.random(30)+x*2
  
  # create figure
  fig, ax = plt.subplots()
  
  # y1 axis
  ax.plot(x,y1,lw=5,c='#006000', zorder=2)
  ax.set_ylim((0,30))
  ax.set_xlim((0,30))
  
  # y2 axis
  ax2 = ax.twinx()  # instantiate a second axes that shares the same x-axis
  ax2.fill_between([0, 30], [10, 10], color='pink', lw=0, zorder=1)
  ax2.fill_between([0, 30], [60, 60], y2=[10, 10], color='gray', lw=0, zorder=1)
  ax2.plot(x, y2,'o',ms=3,c='black', zorder=3)
  ax2.set_ylim((0,60))
  ax2.set_xlim((0,30))
  
  # move y1 axis to the front
  ax.set_zorder(ax2.get_zorder()+1)
  ax.patch.set_visible(False)
  </code></pre>
  
  <p><a href="https://i.stack.imgur.com/RcTms.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/RcTms.png" alt="enter image description here"></a></p>
  
  <p>I would like the background fill color to be in the background but the black data points should be on top of the green line. I tried to achieve this by defining the zorder parameter for these curves but apparently the zorder is only defined within one axis and not across multiple axes.</p>