code: def plot(self):
          
          if not hasattr(self, '_plot'):
              plot = self.figure.add_subplot(111)
              pointspace = self.fit.pointspace(num=self.options['points'])
  
              if any(v is not None for v in self.fit.data.error):
                  plot_data = plot.errorbar
                  self.options['data']['xerr'] = self.fit.data.error[0]
                  self.options['data']['yerr'] = self.fit.data.error[1]
              else:
                  plot_data = plot.plot
  
              plot_data(*pointspace['data'], **self.options['data'])
              plot.plot(*pointspace['fit'], **self.options['fit'])
  
              text = {}
              for v in ('independent', 'dependent'):
                  meta = getattr(self.fit, v)
                  text[v] = {
                    'name': meta['name'] if 'name' in meta else '',
                    'units': ' (' + meta['units'] + ')' if 'units' in meta else ''
                  }
  
              plot.set_xlabel(text['independent']['name'] + text['independent']['units'])
              plot.set_ylabel(text['dependent']['name'] + text['dependent']['units'])
  
              self._plot = plot
  
          return self._plot
docs: The plot object, see [Pyplot][1].
  
          If one does not exist, it will be created first with [`add_subplot`][2].
  
          [1]: http://matplotlib.org/api/pyplot_api.html
          [2]: http://matplotlib.org/api/figure_api.html#matplotlib.figure.Figure.add_subplot