title: How to set space between the axis and the label in matplotlib
body: <p><strong>My code:</strong></p>
  <pre><code>#importing required libraries
  import numpy as np
  from matplotlib.patches import Polygon
  import matplotlib.pyplot as plt
  
  
  #plotting data
  
  def func(x):
      return (x-3)*(x+2)*(3*x+5)+25
  a,b=2,9
  x=np.linspace(0,10,30)
  y=func(x)
  fig,ax=plt.subplots(1,1,dpi=135)
  ax.plot(x,y,linewidth=2.5,color='c')
  ix=np.linspace(a,b)
  iy=func(ix)
  verts=[(a,0),*zip(ix,iy),(b,0)]
  poly=Polygon(verts,facecolor='0.7',edgecolor='0.9')
  ax.add_patch(poly)
  ax.set_ylim(bottom=0)
  ax.text(6.5,150,r'$\int_a^b f(x)$',horizontalalignment='center',fontsize=15)
  ax.set_xlabel('X')
  ax.set_ylabel('Y',rotation=0)
  ax.set_xticks((a,b))
  ax.set_xticklabels(('a','b'))
  ax.spines['right'].set_visible(False)
  ax.spines['top'].set_visible(False)
  ax.xaxis.set_ticks_position('bottom')
  ax.set_yticks([])
  plt.show()
  </code></pre>
  <p>The above code gives:</p>
  <p><a href="https://i.stack.imgur.com/uoSKS.png" rel="noreferrer"><img src="https://i.stack.imgur.com/uoSKS.png" alt="enter image description here" /></a></p>
  <p><strong>My Question:</strong></p>
  <p>So as you have saw the above plot the ylabel 'Y' is touching with the y-axis and there is space between the xlabel 'X' and x-axis</p>
  <p><em>How can I set space between the axis and the label(like there is a space between xlabel and x-axis)?</em></p>
  <p><strong>My attempt:</strong></p>
  <p>In the above code I commented <code>set_ylabel()</code> method and tried <code>text()</code> method</p>
  <pre><code>#ax.set_ylabel('Y',rotation=0)
  fig.text(0.1,0.5,'Y')
  #this code creating a little space between y label and y-axis but I want the same amount of space that is between x label an x axis
  </code></pre>
  <p><strong>Expected output:</strong></p>
  <p><a href="https://i.stack.imgur.com/pK8WY.jpg" rel="noreferrer"><img src="https://i.stack.imgur.com/pK8WY.jpg" alt="enter image description here" /></a></p>