title: Multiple plots on common x axis in Matplotlib with common y-axis labeling
body: <p>I have written the following minimal Python code in order to plot various functions of <code>x</code> on the same X-axis. </p>
  
  <pre><code>import numpy as np
  import matplotlib as mpl
  import matplotlib.pyplot as plt
  from cycler import cycler
  
  cycle = plt.rcParams['axes.prop_cycle'].by_key()['color']
  
  xlabel='$X$'; ylabel='$Y$'
  
  ### Set tick features 
  plt.tick_params(axis='both',which='major',width=2,length=10,labelsize=18)
  plt.tick_params(axis='both',which='minor',width=2,length=5)
  #plt.set_axis_bgcolor('grey') # Doesn't work if I uncomment!
  
  
  
  lines = ["-","--","-.",":"]
  
  Nlayer=4
  f, axarr = plt.subplots(Nlayer, sharex=True)
  
  for a in range(1,Nlayer+1):
  
       X = np.linspace(0,10,100)
       Y = X**a
       index = a-1 + np.int((a-1)/Nlayer)
       axarr[a-1].plot(X, Y, linewidth=2.0+index, color=cycle[a], linestyle = lines[index], label='Layer = {}'.format(a)) 
       axarr[a-1].legend(loc='upper right', prop={'size':6})
  
  
  #plt.legend()
  
  
  # Axes labels
  plt.xlabel(xlabel, fontsize=20)
  plt.ylabel(ylabel, fontsize=20)
  
  plt.show()
  </code></pre>
  
  <p>However, the plots don't join together on the X-axis and I failed to get a common Y-axis label. It actually labels for the last plot (see attached figure). I also get a blank plot additionally which I couldn't get rid of.</p>
  
  <p>I am using Python3.</p>
  
  <p><a href="https://i.stack.imgur.com/K0acj.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/K0acj.png" alt="enter image description here"></a></p>