title: X axis labels do not appear when using subplots
body: <p>My x labels are not showing in the subplots even though I have explicitly instructed matplotlib to draw them.</p>
  
  <p>At first, I suspected that the other plots were having their labels obscured by the subplot below, so I used plt.tight_layout() to add extra space between the subplots, yet I still do not see my x labels, only more whitespace. I suspect that the whitespace is covering up my labels, but I am not certain.</p>
  
  <p>If I transpose the array of subplots, the labels do appear, but this violates the requirements that I am working under.</p>
  
  <pre class="lang-py prettyprint-override"><code>import datetime as dt
  import matplotlib.pyplot as plt
  import numpy as np
  import pandas as pd
  
  FOR = '15'
  SAT = "J02"
  ranges = np.array([[-1000, 1000], [-1000, 1000]])
  Final= pd.DataFrame(np.random.uniform(ranges[:, 0], ranges[:, 1], size=(30, ranges.shape[0])), columns=('In_Track','Cross_Track'))
  LifeTime = pd.DataFrame(np.random.uniform(ranges[:, 0], ranges[:, 1], size=(4000, ranges.shape[0])), columns=('In_Track','Cross_Track'))
  Hundred = pd.DataFrame(np.random.uniform(ranges[:, 0], ranges[:, 1], size=(300, ranges.shape[0])), columns=('In_Track','Cross_Track'))
  Final.insert(0, 'd', [dt.datetime(2001,9,11)]*len(Final))
  LifeTime.insert(0, 'd', [dt.datetime(2001,9,11)]*len(LifeTime))
  Hundred.insert(0, 'd', [dt.datetime(2001,9,11)]*len(Hundred))
  
  ThreePanel, (ax1a, ax2a, ax3a) = plt.subplots(nrows=3, ncols=1, sharex=False, sharey=True, figsize=(10.8, 19.2), dpi=100)
  datestring="02-29-2016"
  ax1a.plot(range(1, 31), Final['In_Track'], 'b-*', label='inTrack')
  ax1a.plot(range(1, 31), Final['Cross_Track'], 'r-*', label=' xTrack')
  yrange = [-3000,3000]
  ax1a.set_ylim(yrange)
  ax1a.grid(True)
  ax1a.set_ylabel('Angle   ['+r'$\mu$'+ 'rad]')
  ax1a.set_xlabel('FOR Scan Position')
  ax1a.set_title('Geolocation Accuracy relative to VIIRS\nfor' + ' ' + SAT + ' on ' + datestring)
  ax1a.legend(loc='best')
  ax1b = ax1a.twinx()   # mirror them
  ax1b.set_ylim(np.array(yrange)/16808. * 100.)
  ax1b.set_ylabel('Percentage of FOV Size [%]')#\nfootprint semiaxes ranges from 14x14km at FOR 15 to 48x24km at FORs 1 &amp; 30')
  ax1b.set_xlabel('FOR Scan Position')
  
  LifeTime.plot(kind='line', y='In_Track', ax=ax2a)
  LifeTime.plot(kind='line', y='Cross_Track', ax=ax2a)
  ax2a.set_xlabel('Date')
  yrange = [-3000, 3000]
  ax2a.set_ylim(yrange)
  ax2a.set_ylabel('Angle   ['+r'$\mu$'+ 'rad]')
  ax2a.grid(True)
  ax2b = ax2a.twinx() #mirror yaxis
  ax2b.set_ylim(np.array(yrange)/16808. * 100.)
  ax2b.set_ylabel('Percentage of FOV Size [%]')
  ax2b.axhline(y=10.7, c ='m', ls='--')
  ax2b.axhline(y=-10.7, c ='m', ls='--')
  DateDiff = '300 Days'
  ax2a.set_title(DateDiff + ' of Geolocation Accuracy relative to VIIRS for FOR Scan Position: ' + FOR)
  
  #ax3a = plt.subplot(3,1,3, sharex=None)
  Hundred.plot(kind='line', y='In_Track', ax=ax3a)
  Hundred.plot(kind='line', y='Cross_Track', ax=ax3a)
  ax3a.set_xlabel('Date')
  yrange = [-3000, 3000]
  ax3a.set_ylim(yrange)
  ax3a.set_ylabel('Angle   ['+r'$\mu$'+ 'rad]')
  ax3a.grid(True)
  ax3b = ax3a.twinx() #mirror yaxis
  ax3b.set_ylim(np.array(yrange)/16808. * 100.)
  ax3b.set_ylabel('Percentage of FOV Size [%]')
  DateDiff = '100 Days'
  ax3a.set_title(DateDiff + ' of Geolocation Accuracy relative to VIIRS for FOR Scan Position: ' + FOR)
  ThreePanel.tight_layout(pad=0.4, w_pad=0.5, h_pad=10)
  
  outfilename = 'Reproducible.png'
  plt.savefig(outfilename)
  </code></pre>
  
  <p>In my reproducible code above, I set explicit x labels for each of 3 different subplots. However, only the bottom-most subplot displays its x labels.</p>