using imshow with a shared x axis with matplotlib
<p>The Y limits on my <code>imshow</code> subplot are stuck on a seemingly arbitrary range.</p>

<p>In this example, I'm trying to show the mean of N trials and then plot all the N trials over time as a 2d plot.</p>

<pre><code>import numpy as np
import matplotlib.pyplot as plt
np.random.seed(42)
N = 20   # number of trials
M = 3000  # number of samples in each trial
data = np.random.randn(N, M)
x = np.linspace(0,1,M)  # the M samples occur in the range 0-1 
                    # ie the sampling rate is 3000 samples per second
f, (ax1, ax2) = plt.subplots(2,1, sharex=True)
ax1.plot(x, np.mean(data, 0))
ax2.imshow(data, cmap="inferno", interpolation="nearest", extent=[0, 1, 0, N])
ax2.set_ylim(0, N)
ax1.set_ylabel("mean over trials")
ax2.set_ylabel("trial")
ax2.set_xlabel("time")
</code></pre>

<p><a href="https://i.stack.imgur.com/X1Quj.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/X1Quj.png" alt="rogue plot"></a></p>

<p>Are there any tricks to set the Y limits correctly?</p>