title: Matplotlib subplot y-axis scale overlaps with plot above
body: <p>I am trying to plot 3 subplots without any white space between them. The default y axis ticklabels use a scale displayed to the top right of the y axis (1e-8 in the example below), which would be fine except for the lower two plots this overlaps with the plot above. Anyone know how to fix this? A small example is below. </p>
  
  <pre><code>import numpy as np
  import matplotlib.pyplot as plt
  import matplotlib.gridspec as gridspec
  from matplotlib.ticker import MaxNLocator
  
  x = np.arange(0,200)
  y = np.random.rand(200) * 10e-8
  
  
  fig = plt.figure(figsize=(10,15))
  gs1 = gridspec.GridSpec(3, 3)
  gs1.update(left=0.1, right=0.9, bottom=0.5, hspace=0.0)
  ax0a = plt.subplot(gs1[0, :])
  ax0b = plt.subplot(gs1[1, :])
  ax0c = plt.subplot(gs1[2, :])
  
  
  ax0a.set_xticklabels([])
  ax0b.set_xticklabels([]) 
  
  ax0a.plot(x,y)
  nbins = len(ax0a.get_xticklabels())
  ax0a.yaxis.set_major_locator(MaxNLocator(nbins=nbins, prune='upper'))
  ax0b.plot(x,y)
  ax0b.yaxis.set_major_locator(MaxNLocator(nbins=nbins, prune='upper'))
  ax0c.plot(x,y)
  ax0c.yaxis.set_major_locator(MaxNLocator(nbins=nbins, prune='upper'))
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/hTDhv.png" alt="plot"></p>
  
  <p>so one solution is to use mtick,</p>
  
  <pre><code>import matplotlib.ticker as mtick
  
  ax0a.yaxis.set_major_formatter(mtick.FormatStrFormatter('%.1e'))
  ax0b.yaxis.set_major_formatter(mtick.FormatStrFormatter('%.1e'))
  ax0c.yaxis.set_major_formatter(mtick.FormatStrFormatter('%.1e'))
  </code></pre>
  
  <p>but I would prefer to be able to shift the scale to the left so it is outside the axis if possible.</p>