title: Positioning the exponent of tick labels when using scientific notation in matplotlib
body: <p>I am looking for a way to change the position of the exponent on an axis when using scientific notation. I got stuck at this problem already a few times. I know already that the default formatter is the <code>ScalarFormatter</code> but it has no option to access the exponent somehow.</p>
  
  <p>There is a <a href="http://werthmuller.org/blog/2014/move-scientific-notation/" rel="noreferrer">workaround</a> but I don't like it, since it also manipulates the existing ticklabels. So far I found out, that the list returned by the axes' <code>get_xmajorticklabels()</code> method contains one text object more if scientific notation is used. For example:</p>
  
  <pre><code>import matplotlib.pyplot as plt
  import numpy as np
  
  fig= plt.figure(figsize = plt.figaspect(0.5))
  ax1= fig.add_subplot(121)
  ax1.plot(np.arange(146), np.random.rand(146))
  print(ax1.get_xmajorticklabels())
  
  ax2= fig.add_subplot(122)
  ax2.plot(np.arange(146)*1e-6, np.random.rand(146))
  print(ax2.get_xmajorticklabels())
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/iq4iQ.png" alt="Image with the resulting plots"></p>
  
  <p>The prints give:  <code>&lt;a list of 9 Text xticklabel objects&gt;</code> and <code>&lt;a list of 10 Text xticklabel objects&gt;</code>
  So I thought the additional list item could be the text object for the exponent. But it's empty when I print the text.</p>
  
  <p>Is there any way to access this exponent as a text object? Then it should be possible to set its position, isn't it?</p>