def errorbar(self, **kwargs):
ax = kwargs.pop('<STR_LIT>', None)<EOL>color = kwargs.pop('<STR_LIT>', '<STR_LIT>')<EOL>filled = kwargs.pop('<STR_LIT>', True)<EOL>fill_alpha = kwargs.pop('<STR_LIT>', <NUM_LIT>)<EOL>kwargs.setdefault('<STR_LIT>', <NUM_LIT:0>)<EOL>kwargs.setdefault('<STR_LIT>', <NUM_LIT:1>)<EOL>kwargs.setdefault('<STR_LIT>', color)<EOL>kwargs.setdefault('<STR_LIT>', <NUM_LIT>)<EOL>kwargs.setdefault('<STR_LIT>', None)<EOL>columns = kwargs.pop('<STR_LIT>', Ellipsis)         <EOL>maxpoints = kwargs.pop('<STR_LIT>', self.maxpoints_default)<EOL>transform = kwargs.pop('<STR_LIT>', lambda x: x)  <EOL>method = kwargs.pop('<STR_LIT>', "<STR_LIT>")<EOL>if method != "<STR_LIT>":<EOL><INDENT>raise NotImplementedError("<STR_LIT>")<EOL><DEDENT>error_method = kwargs.pop('<STR_LIT>', "<STR_LIT>")  <EOL>percentile = numpy.abs(kwargs.pop('<STR_LIT>', <NUM_LIT>))<EOL>demean = kwargs.pop('<STR_LIT>', False)<EOL>try:<EOL><INDENT>data = numpy.asarray(transform(self.array))[columns]<EOL><DEDENT>except IndexError:<EOL><INDENT>raise MissingDataError("<STR_LIT>".format(columns))<EOL><DEDENT>if data.shape[-<NUM_LIT:1>] == <NUM_LIT:0>:<EOL><INDENT>raise MissingDataError("<STR_LIT>")<EOL><DEDENT>a = numpy.zeros((data.shape[<NUM_LIT:0>], maxpoints), dtype=numpy.float64)<EOL>a[<NUM_LIT:0>:<NUM_LIT:2>] = self.decimate("<STR_LIT>", data[<NUM_LIT:0>:<NUM_LIT:2>], maxpoints=maxpoints)<EOL>error_data = numpy.vstack((data[<NUM_LIT:0>], data[<NUM_LIT:2>:]))<EOL>if error_method == "<STR_LIT>":<EOL><INDENT>if percentile > <NUM_LIT:50>:<EOL><INDENT>upper_per = percentile<EOL>lower_per = <NUM_LIT:100> - percentile<EOL><DEDENT>else:<EOL><INDENT>upper_per = <NUM_LIT:100> - percentile<EOL>lower_per = percentile<EOL><DEDENT>upper = a[<NUM_LIT:2>:] = self.decimate("<STR_LIT>", error_data, maxpoints=maxpoints,<EOL>per=upper_per, demean=False)[<NUM_LIT:1>:]<EOL>lower = self.decimate("<STR_LIT>", error_data, maxpoints=maxpoints,<EOL>per=lower_per, demean=False)[<NUM_LIT:1>:]<EOL><DEDENT>else:<EOL><INDENT>a[<NUM_LIT:2>:] = self.decimate(error_method, error_data, maxpoints=maxpoints, demean=demean)[<NUM_LIT:1>:]<EOL>lower = None<EOL><DEDENT>ma = numpy.ma.MaskedArray(a, mask=numpy.logical_not(numpy.isfinite(a)))<EOL>if lower is not None:<EOL><INDENT>mlower = numpy.ma.MaskedArray(lower, mask=numpy.logical_not(numpy.isfinite(lower)))<EOL><DEDENT>X = ma[<NUM_LIT:0>]          <EOL>Y = ma[<NUM_LIT:1>]<EOL>try:<EOL><INDENT>kwargs['<STR_LIT>'] = ma[<NUM_LIT:3>]<EOL>kwargs['<STR_LIT>'] = ma[<NUM_LIT:2>]<EOL><DEDENT>except IndexError:<EOL><INDENT>try:<EOL><INDENT>kwargs['<STR_LIT>'] = ma[<NUM_LIT:2>]<EOL><DEDENT>except IndexError:<EOL><INDENT>raise TypeError("<STR_LIT>")<EOL><DEDENT><DEDENT>if ax is None:<EOL><INDENT>ax = plt.gca()<EOL><DEDENT>if filled:<EOL><INDENT>if error_method == "<STR_LIT>":<EOL><INDENT>if demean:<EOL><INDENT>y1 = mlower[-<NUM_LIT:1>]<EOL>y2 = kwargs['<STR_LIT>']<EOL><DEDENT>else:<EOL><INDENT>y1 = Y - mlower[-<NUM_LIT:1>]<EOL>y2 = Y + kwargs['<STR_LIT>']<EOL><DEDENT><DEDENT>else:<EOL><INDENT>y1 = Y - kwargs['<STR_LIT>']<EOL>y2 = Y + kwargs['<STR_LIT>']<EOL><DEDENT>ax.fill_between(X, y1, y2, color=color, alpha=fill_alpha)<EOL><DEDENT>else:<EOL><INDENT>if error_method == "<STR_LIT>":<EOL><INDENT>if demean:<EOL><INDENT>kwargs['<STR_LIT>'] = numpy.vstack((mlower[-<NUM_LIT:1>], kwargs['<STR_LIT>']))<EOL><DEDENT>else:<EOL><INDENT>kwargs['<STR_LIT>'] = numpy.vstack((Y - mlower[-<NUM_LIT:1>], Y + kwargs['<STR_LIT>']))<EOL><DEDENT>try:<EOL><INDENT>kwargs['<STR_LIT>'] = numpy.vstack((X - mlower[<NUM_LIT:0>], X + kwargs['<STR_LIT>']))<EOL><DEDENT>except (KeyError, IndexError):<EOL><INDENT>pass<EOL><DEDENT><DEDENT>ax.errorbar(X, Y, **kwargs)<EOL><DEDENT>for kw in "<STR_LIT>", "<STR_LIT>", "<STR_LIT>", "<STR_LIT>", "<STR_LIT>", "<STR_LIT>":<EOL><INDENT>kwargs.pop(kw, None)<EOL><DEDENT>kwargs['<STR_LIT>'] = <NUM_LIT:1.0><EOL>ax.plot(X, Y, color=color, **kwargs)<EOL>return ax<EOL>
errorbar plot for a single time series with errors.

        Set *columns* keyword to select [x, y, dy] or [x, y, dx, dy],
        e.g. ``columns=[0,1,2]``. See :meth:`XVG.plot` for
        details. Only a single timeseries can be plotted and the user
        needs to select the appropriate columns with the *columns*
        keyword.

        By default, the data are decimated (see :meth:`XVG.plot`) for
        the default of *maxpoints* = 10000 by averaging data in
        *maxpoints* bins.

        x,y,dx,dy data can plotted with error bars in the x- and
        y-dimension (use *filled* = ``False``).

        For x,y,dy use *filled* = ``True`` to fill the region between
        y±dy. *fill_alpha* determines the transparency of the fill
        color. *filled* = ``False`` will draw lines for the error
        bars. Additional keywords are passed to
        :func:`pylab.errorbar`.

        By default, the errors are decimated by plotting the 5% and
        95% percentile of the data in each bin. The percentile can be
        changed with the *percentile* keyword; e.g. *percentile* = 1
        will plot the 1% and 99% perentile (as will *percentile* =
        99).

        The *error_method* keyword can be used to compute errors as
        the root mean square sum (*error_method* = "rms") across each
        bin instead of percentiles ("percentile"). The value of the
        keyword *demean* is applied to the decimation of error data
        alone.

        .. SeeAlso::

           :meth:`XVG.plot` lists keywords common to both methods.