docs: def do_plot_and_bestfit(self):
          """
          Create plot
          """
          # Plot
          fmt = str(self.kwargs.get("fmt", "k."))
          if "errors" in self.kwargs:
              errors = self.kwargs["errors"]
              if isinstance(errors, dict):
                  self.subplot.errorbar(self.x, self.y, fmt=fmt,
                                        xerr=errors.get("xerr", None),
                                        yerr=errors.get("yerr", None))
              elif isinstance(errors, (collections.Sequence, np.ndarray, float)):
                  self.subplot.errorbar(self.x, self.y, fmt=fmt, yerr=errors)
              else:
                  self.subplot.plot(self.x, self.y, fmt)
          else:
              self.subplot.plot(self.x, self.y, fmt)
  
          # bestfit
          bestfit = self.kwargs.get("bestfit", None)
          if bestfit is not None:
              bestfitlim = self.kwargs.get("bestfitlim", None)
              if bestfitlim is None:
                  bestfitlim = self.kwargs.get("xlim", None)
              if bestfitlim is None:
                  bestfitlim = (min(self.x), max(self.x))
              fit_args = bestfit.do_bestfit()
              bestfit_line = bestfit.get_bestfit_line(
                  x_min=bestfitlim[0], x_max=bestfitlim[1])
              self.subplot.plot(
                  bestfit_line[0], bestfit_line[1],
                  self.kwargs.get("bestfitfmt", "k-")
              )
              self.outputdict["fit_args"] = fit_args
              self.outputdict["rmse"] = bestfit.get_rmse()
          return self