code: def _draw_title(self):
          
          # This is very laboured. Should be changed when MPL
          # finally has a constraint based layout manager.
          figure = self.figure
          title = self.labels.get('title', '')
          rcParams = self.theme.rcParams
          get_property = self.theme.themeables.property
  
          # Pick suitable values in inches and convert them to
          # transFigure dimension. This gives fixed spacing
          # margins which work for oblong plots.
          top = figure.subplotpars.top
          W, H = figure.get_size_inches()
  
          # Adjust the title to avoid overlap with the facet
          # labels on the top row
          # pad/H is inches in transFigure coordinates. A fixed
          # margin value in inches prevents oblong plots from
          # getting unpredictably large spaces.
          try:
              fontsize = get_property('plot_title', 'size')
          except KeyError:
              fontsize = float(rcParams.get('font.size', 12))
  
          try:
              linespacing = get_property('plot_title', 'linespacing')
          except KeyError:
              linespacing = 1.2
  
          try:
              margin = get_property('plot_title', 'margin')
          except KeyError:
              pad = 0.09
          else:
              pad = margin.get_as('b', 'in')
  
          try:
              strip_margin_x = get_property('strip_margin_x')
          except KeyError:
              strip_margin_x = 0
  
          line_size = fontsize / 72.27
          num_lines = len(title.split('\n'))
          title_size = line_size * linespacing * num_lines
          strip_height = self.facet.strip_size('top')
          # vertical adjustment
          strip_height *= (1 + strip_margin_x)
  
          x = 0.5
          y = top + (strip_height+title_size/2+pad)/H
  
          text = figure.text(x, y, title, ha='center', va='center')
          figure._themeable['plot_title'] = text
docs: Draw title onto the figure