code: def plot_errorbars_trainset(self, which_data_rows='all',
          which_data_ycols='all', fixed_inputs=None,
          plot_raw=False, apply_link=False, label=None, projection='2d',
          predict_kw=None, **plot_kwargs):
      
      canvas, kwargs = pl().new_canvas(projection=projection, **plot_kwargs)
      plots = _plot_errorbars_trainset(self, canvas, which_data_rows, which_data_ycols,
                                       fixed_inputs, plot_raw, apply_link, label, projection, predict_kw, **kwargs)
      return pl().add_to_canvas(canvas, plots)
docs: Plot the errorbars of the GP likelihood on the training data.
      These are the errorbars after the appropriate
      approximations according to the likelihood are done.
  
      This also works for heteroscedastic likelihoods.
  
      Give the Y_metadata in the predict_kw if you need it.
  
      :param which_data_rows: which of the training data to plot (default all)
      :type which_data_rows: 'all' or a slice object to slice self.X, self.Y
      :param which_data_ycols: when the data has several columns (independant outputs), only plot these
      :param fixed_inputs: a list of tuple [(i,v), (i,v)...], specifying that input dimension i should be set to value v.
      :type fixed_inputs: a list of tuples
      :param dict predict_kwargs: kwargs for the prediction used to predict the right quantiles.
      :param kwargs plot_kwargs: kwargs for the data plot for the plotting library you are using