%--------------------------------------------
%
% Package pgfplots
%
% Provides a user-friendly interface to create function plots (normal
% plots, semi-logplots and double-logplots).
%
% It is based on Till Tantau's PGF package.
%
% Copyright 2007-2013 by Christian Feuersänger.
%
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.
%
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program. If not, see .
%
%--------------------------------------------
% the \addplot commands assign
% \pgfplots@current@point@error@x@plus
% \pgfplots@current@point@error@x@minus
% \pgfplots@current@point@error@y@plus
% \pgfplots@current@point@error@y@minus
% \pgfplots@current@point@error@z@plus
% \pgfplots@current@point@error@z@minus
%
% the error bar processing takes these values as input, adds them to
% the current coordinates where applicable and according the the error
% bar configuration and overwrites these macros.
%
% Then, these values are registered as "visualization depends on",
% i.e. they will be available for every visualization phase.
%
% The visualization phase, in turn, expects these values. More
% precisely, a separate visualization phase called
% \pgfplotsaxis@visphase@name@errorbars is started. This installs the
% plot handler \pgfplots@errorbars@plot@handler and does the same job
% as it would for normal plot handlers.
%
\def\pgfplots@errorbars@survey@begin{%
%
\pgfplots@errorbars@prepare@value@serialization
%
% Now, prepare the coordinate processing for errorbars:
\pgfplots@PREPARE@errorbar@processing@in@dir x%
\pgfplots@PREPARE@errorbar@processing@in@dir y%
\ifpgfplots@curplot@threedim
\pgfplots@PREPARE@errorbar@processing@in@dir z%
\else
\let\pgfplots@PREPARE@errorbar@process@z=\relax
\fi
}
\def\pgfplots@errorbars@survey@end{%
\pgfplots@streamerrorbarend
}%
\def\pgfplots@errorbars@survey@point{%
% This thing gets the 'current@point@...' context,
% that means
% \pgfplots@current@point@[xy]
% \pgfplots@current@point@[xy]@error
% \pgfplots@current@point@[xy]@unfiltered
\pgfplots@PREPARE@errorbar@process@x%
\pgfplots@PREPARE@errorbar@process@y%
\pgfplots@PREPARE@errorbar@process@z%
}
\def\pgfplots@errorbars@visphase@begin{%
\pgfplots@errorbars@prepare@value@serialization
}
\def\pgfplots@errorbars@visphase@end{%
}%
\def\pgfplots@errorbars@visphase@point{%
}%
\def\pgfplots@errorbars@prepare@value@serialization{%
\if0\pgfplots@errorbars@xdirection
\else
\pgfplotsset{%
visualization depends on=value \pgfplots@current@point@error@x@plus\as\pgfplots@current@point@error@x@plus,
visualization depends on=value \pgfplots@current@point@error@x@minus\as\pgfplots@current@point@error@x@minus,
}%
\fi
\if0\pgfplots@errorbars@ydirection
\else
\pgfplotsset{%
visualization depends on=value \pgfplots@current@point@error@y@plus\as\pgfplots@current@point@error@y@plus,
visualization depends on=value \pgfplots@current@point@error@y@minus\as\pgfplots@current@point@error@y@minus,
}%
\fi
\ifpgfplots@curplot@threedim
\if0\pgfplots@errorbars@zdirection
\else
\pgfplotsset{%
visualization depends on=value \pgfplots@current@point@error@z@plus\as\pgfplots@current@point@error@z@plus,
visualization depends on=value \pgfplots@current@point@error@z@minus\as\pgfplots@current@point@error@z@minus,
}%
\fi
\fi
}%
% Prepares a macro \pgfplots@PREPARE@process@errorbar@for@dir##1
% which can then be used to process error bars. The macro will be
% \relax if error bars are disabled for #1.
%
% #1: either x, y or z.
%
% POSTCONDITION:
% the macro \pgfplots@PREPARE@errorbar@process@#1 will be defined.
% It is supposed to be used inside of the pgfplots streaming methods
% and depends on the arguments
% \pgfplots@current@point@[xyz]
% \pgfplots@current@point@[xyz]@unfiltered
% \pgfplots@current@point@[xyz]@error
% The '@unfilterered' arguments are needed for log plots. I do not
% want to compute exp(current@point@[xyz]) again.
\def\pgfplots@PREPARE@errorbar@processing@in@dir#1{%
\pgfplots@PREPARE@errorbar@processing@in@dir@reset#1%
%
\if0\csname pgfplots@errorbars@#1direction\endcsname
% no error bars. Ok. Do nothing here.
\expandafter\let\csname pgfplots@PREPARE@errorbar@process@#1\endcsname=\relax
\else
%
% The routine which is invoked for every reported input
% coordinate is \pgfplots@process@errorbar@for.
%
% This here prepares its helper macros for direction '#1':
%
% More precisely, it prepared
%
% ##1 is either '+' or '-':
% \pgfplots@PREPARE@errorbar@process@x@##1
% \pgfplots@PREPARE@errorbar@process@y@##1
% \pgfplots@PREPARE@errorbar@process@z@##1
%
\pgfplots@if{pgfplots@#1islinear}{%
\ifcase\csname pgfplots@errorbars@#1mode\endcsname\relax
% fixed absolute error.
\pgfplotscoordmath{#1}{parsenumber}{\csname pgfplots@errorbars@#1fixed\endcsname}%
\expandafter\let\csname pgfplots@error@coord@#1\endcsname=\pgfmathresult
\expandafter\def\csname pgfplots@PREPARE@errorbar@process@#1@\endcsname##1{%
\if +##1%
\def\pgfplots@loc@TMPb{add}%
\else
\def\pgfplots@loc@TMPb{subtract}%
\fi
\pgfplotscoordmath{#1}{op}{\pgfplots@loc@TMPb}{%
{\csname pgfplots@current@point@#1\endcsname}%
{\csname pgfplots@error@coord@#1\endcsname}%
}%
\let\pgfplots@error@coord=\pgfmathresult
\pgfplots@PREPARE@errorbar@stream@it@#1##1%
}%
\or% fixed relative error:
\pgfplotscoordmath{#1}{parsenumber}{\csname pgfplots@errorbars@#1rel\endcsname}%
\let\pgfplots@loc@TMPb=\pgfmathresult
%
% +1:
\pgfplotscoordmath{#1}{parsenumber}{1}%
\let\pgfplots@loc@TMPa=\pgfmathresult
%
% Prepare '1 + err':
\pgfplotscoordmath{#1}{op}{add}{%
{\pgfplots@loc@TMPa}%
{\pgfplots@loc@TMPb}%
}%
\expandafter\let\csname pgfplots@error@coord@#1@+\endcsname=\pgfmathresult
%
% Prepare '1 - err':
\pgfplotscoordmath{#1}{op}{subtract}{%
{\pgfplots@loc@TMPa}%
{\pgfplots@loc@TMPb}%
}%
\expandafter\let\csname pgfplots@error@coord@#1@-\endcsname=\pgfmathresult
%
\expandafter\def\csname pgfplots@PREPARE@errorbar@process@#1@\endcsname##1{%
\pgfplotscoordmath{#1}{op}{multiply}{%
{\csname pgfplots@current@point@#1\endcsname}
{\csname pgfplots@error@coord@#1@##1\endcsname}%
}%
\let\pgfplots@error@coord=\pgfmathresult
\pgfplots@PREPARE@errorbar@stream@it@#1##1%
}%
\or% explicit absolute:
\expandafter\def\csname pgfplots@PREPARE@errorbar@process@#1@\endcsname##1{%
\edef\pgfplots@error@coord{\csname pgfplots@current@point@error@#1@\pgfplots@errorbars@plusminus##1\endcsname}%
\ifx\pgfplots@error@coord\pgfutil@empty
\pgfplots@PREPARE@errorbar@stream@it@empty#1##1%
\else
\pgfplotscoordmath{#1}{parsenumber}{\pgfplots@error@coord}%
\pgfplotscoordmath{#1}{if is bounded}{\pgfmathresult}{%
\let\pgfplots@error@coord=\pgfmathresult
% remember result here - will be used in case
% of '+' AND '-' error bars:
%\expandafter\let\csname pgfplots@current@point@error@#1@\pgfplots@errorbars@plusminus##1\endcsname=\pgfmathresult
\if +##1%
\def\pgfplots@loc@TMPb{add}%
\else
\def\pgfplots@loc@TMPb{subtract}%
\fi
\pgfplotscoordmath{#1}{op}{\pgfplots@loc@TMPb}{%
{\csname pgfplots@current@point@#1\endcsname}%
{\pgfplots@error@coord}%
}%
\let\pgfplots@error@coord=\pgfmathresult
\pgfplots@PREPARE@errorbar@stream@it@#1##1%
}{%
% input is unbounded. Skip it.
\pgfplots@PREPARE@errorbar@stream@it@empty#1##1%
}%
\fi
}%
\or% explicit relative:
\expandafter\def\csname pgfplots@PREPARE@errorbar@process@#1@\endcsname##1{%
\edef\pgfplots@error@coord{\csname pgfplots@current@point@error@#1@\pgfplots@errorbars@plusminus##1\endcsname}%
\ifx\pgfplots@error@coord\pgfutil@empty
\pgfplots@PREPARE@errorbar@stream@it@empty#1##1%
\else
\pgfplotscoordmath{#1}{parsenumber}{\pgfplots@error@coord}%
\pgfplotscoordmath{#1}{if is bounded}{\pgfmathresult}{%
\let\pgfplots@error@coord=\pgfmathresult
% compute ' 1 + value' or '1-value':
\pgfplotscoordmath{#1}{one}%
\if +##1%
\def\pgfplots@loc@TMPb{add}%
\else
\def\pgfplots@loc@TMPb{subtract}%
\fi
\pgfplotscoordmath{#1}{op}{\pgfplots@loc@TMPb}{%
{\pgfmathresult}%
{\pgfplots@error@coord}%
}%
\let\pgfplots@error@coord=\pgfmathresult
\pgfplotscoordmath{#1}{op}{multiply}{%
{\csname pgfplots@current@point@#1\endcsname}
{\pgfplots@error@coord}%
}%
\let\pgfplots@error@coord=\pgfmathresult
\pgfplots@PREPARE@errorbar@stream@it@#1##1%
}{%
% input is unbounded. Skip it.
\pgfplots@PREPARE@errorbar@stream@it@empty#1##1%
}%
\fi
}%
\fi
}{%
% LOGARITHMIC scaling. All errors are interpreted as
% log(x +- e_x)
% or
% log( x*(1+-e_x) )
%
% That means any input argument is
% given in log base e and in fixed point.
% Furthermore, we expect the '@unfiltered' keys to be
% present (I don't want to apply 'exp' again!).
%
\ifcase\csname pgfplots@errorbars@#1mode\endcsname
% fixed absolute, log( x +- e_x )
%
\pgfplotscoordmath{default}{parsenumber}{\csname pgfplots@errorbars@#1fixed\endcsname}%
\expandafter\let\csname pgfplots@error@coord@#1\endcsname=\pgfmathresult
\expandafter\def\csname pgfplots@PREPARE@errorbar@process@#1@\endcsname##1{%
\pgfplotscoordmath{default}{parsenumber}{\csname pgfplots@current@point@#1@unfiltered\endcsname}%
\let\pgfplots@loc@TMPa=\pgfmathresult
\if +##1%
\def\pgfplots@loc@op{add}%
\else
\def\pgfplots@loc@op{subtract}%
\fi
\pgfplotscoordmath{default}{op}{\pgfplots@loc@op}{%
{\pgfplots@loc@TMPa}%
{\csname pgfplots@error@coord@#1\endcsname}%
}%
\pgfplotscoordmath{default}{tostring}{\pgfmathresult}%
\pgfplotscoordmath{#1}{log}{\pgfmathresult}%
\let\pgfplots@error@coord=\pgfmathresult
\pgfplots@PREPARE@errorbar@stream@it@#1##1%
}%
\or% fixed relative, log( x ( 1+-e_x ) ) = log(x) + log(1+-e_x)
\pgfplotscoordmath{default}{parsenumber}{\csname pgfplots@errorbars@#1rel\endcsname}%
\let\pgfplots@loc@TMPb=\pgfmathresult
%
% +1:
\pgfplotscoordmath{default}{one}%
\let\pgfplots@loc@TMPa=\pgfmathresult
%
% Prepare '1 + err':
\pgfplotscoordmath{default}{op}{add}{{\pgfplots@loc@TMPa}{\pgfplots@loc@TMPb}}%
\pgfplotscoordmath{default}{tostring}{\pgfmathresult}%
\pgfplotscoordmath{#1}{log}{\pgfmathresult}%
\pgfplotscoordmath{#1}{if is bounded}{\pgfmathresult}{%
}{%
% 1 + err <= 0 and log(1+err) is undefined:
\pgfplotscoordmath{default}{tostring}{\pgfplots@loc@TMPb}%
\pgfplots@error{Sorry, log(1 + \pgfmathresult) is undefined. Please provide a different argument for '/pgfplots/error bar/#1 fixed relative'.}%
\let\pgfmathresult=\pgfutil@empty
}%
\expandafter\let\csname pgfplots@error@coord@#1@+\endcsname=\pgfmathresult
%
% Prepare '1 - err':
\pgfplotscoordmath{default}{op}{subtract}{{\pgfplots@loc@TMPa}{\pgfplots@loc@TMPb}}%
\pgfplotscoordmath{default}{tostring}{\pgfmathresult}%
\pgfplotscoordmath{#1}{log}{\pgfmathresult}%
\pgfplotscoordmath{#1}{if is bounded}{\pgfmathresult}{%
}{%
% 1 - err <= 0 and log(1+err) is undefined:
\pgfplotscoordmath{default}{tostring}{\pgfplots@loc@TMPb}%
\pgfplots@error{Sorry, log(1 - \pgfmathresult) (\pgfplots@loc@TMPa - \pgfplots@loc@TMPb) is undefined. Please provide a different argument for '/pgfplots/error bar/#1 fixed relative'.}%
\let\pgfmathresult=\pgfutil@empty
}%
\expandafter\let\csname pgfplots@error@coord@#1@-\endcsname=\pgfmathresult
%
\expandafter\def\csname pgfplots@PREPARE@errorbar@process@#1@\endcsname##1{%
\expandafter\ifx\csname pgfplots@current@point@#1@##1\endcsname\pgfutil@empty
\pgfplots@PREPARE@errorbar@stream@it@empty#1##1%
\else
\pgfmath@basic@add@
{\csname pgfplots@current@point@#1\endcsname}
{\csname pgfplots@error@coord@#1@##1\endcsname}%
\let\pgfplots@error@coord=\pgfmathresult
\pgfplots@PREPARE@errorbar@stream@it@#1##1%
\fi
}%
\or% explicit absolute
% log( x +- e_x )
\expandafter\def\csname pgfplots@PREPARE@errorbar@process@#1@\endcsname##1{%
\edef\pgfplots@error@coord{\csname pgfplots@current@point@error@#1@\pgfplots@errorbars@plusminus##1\endcsname}%
\ifx\pgfplots@error@coord\pgfutil@empty
\pgfplots@PREPARE@errorbar@stream@it@empty#1##1%
\else
\pgfplotscoordmath{default}{parsenumber}{\pgfplots@error@coord}%
\pgfplotscoordmath{default}{if is bounded}{\pgfmathresult}{%
\let\pgfplots@error@coord=\pgfmathresult
% remember result here - will be used in case
% of '+' AND '-' error bars:
%\expandafter\let\csname pgfplots@current@point@error@#1@\pgfplots@errorbars@plusminus##1\endcsname=\pgfmathresult
\pgfplotscoordmath{default}{parsenumber}{\csname pgfplots@current@point@#1@unfiltered\endcsname}%
\let\pgfplots@loc@TMPa=\pgfmathresult
\if +##1%
\def\pgfplots@loc@op{add}%
\else
\def\pgfplots@loc@op{subtract}%
\fi
\pgfplotscoordmath{default}{op}{\pgfplots@loc@op}{%
{\pgfplots@loc@TMPa}%
{\pgfplots@error@coord}%
}%
\pgfplotscoordmath{default}{tostring}{\pgfmathresult}%
\pgfplotscoordmath{#1}{log}{\pgfmathresult}%
\let\pgfplots@error@coord=\pgfmathresult
\pgfplots@PREPARE@errorbar@stream@it@#1##1%
}{%
% input is unbounded. Skip it.
\pgfplots@PREPARE@errorbar@stream@it@empty#1##1%
}%
\fi
}%
%
\or% explicit relative:
% log( x ( 1+-e_x ) ) = log(x) + log(1+-e_x)
\expandafter\def\csname pgfplots@PREPARE@errorbar@process@#1@\endcsname##1{%
\edef\pgfplots@error@coord{\csname pgfplots@current@point@error@#1@\pgfplots@errorbars@plusminus##1\endcsname}%
\ifx\pgfplots@error@coord\pgfutil@empty
\pgfplots@PREPARE@errorbar@stream@it@empty#1##1%
\else
\pgfplotscoordmath{default}{parsenumber}{\pgfplots@error@coord}%
\pgfplotscoordmath{default}{if is bounded}{\pgfmathresult}{%
\let\pgfplots@error@coord=\pgfmathresult
% remember result here - will be used in case
% of '+' AND '-' error bars:
%\expandafter\let\csname pgfplots@current@point@error@#1@\pgfplots@errorbars@plusminus##1\endcsname=\pgfmathresult
%
\pgfplotscoordmath{default}{one}%
\let\pgfplots@loc@TMPa=\pgfmathresult
\if +##1%
\def\pgfplots@loc@op{add}%
\else
\def\pgfplots@loc@op{subtract}%
\fi
\pgfplotscoordmath{default}{op}{\pgfplots@loc@op}{%
{\pgfplots@loc@TMPa}%
{\pgfplots@error@coord}%
}%
\pgfplotscoordmath{default}{tostring}{\pgfmathresult}%
\pgfplotscoordmath{#1}{log}{\pgfmathresult}%
\let\pgfplots@error@coord=\pgfmathresult
\pgfplotscoordmath{#1}{if is bounded}{\pgfmathresult}{%
\pgfplotscoordmath{#1}{op}{add}{%
{\csname pgfplots@current@point@#1\endcsname}
{\pgfplots@error@coord}%
}%
\let\pgfplots@error@coord=\pgfmathresult
\pgfplots@PREPARE@errorbar@stream@it@#1##1%
}{%
% -> log( <= 0 ) -> do nothing.
\pgfplots@PREPARE@errorbar@stream@it@empty#1##1%
}%
}{%
% input is unbounded - do nothing.
\pgfplots@PREPARE@errorbar@stream@it@empty#1##1%
}%
\fi
}%
%
\fi
}%
\ifcase\csname pgfplots@errorbars@#1direction\endcsname
% none
\or
% plus
\expandafter\edef\csname pgfplots@PREPARE@errorbar@process@#1\endcsname{%
\expandafter\noexpand\csname pgfplots@PREPARE@errorbar@process@#1@\endcsname+%
}%
\or
% minus
\expandafter\edef\csname pgfplots@PREPARE@errorbar@process@#1\endcsname{%
\expandafter\noexpand\csname pgfplots@PREPARE@errorbar@process@#1@\endcsname-%
}%
\or
% both
\expandafter\edef\csname pgfplots@PREPARE@errorbar@process@#1\endcsname{%
\expandafter\noexpand\csname pgfplots@PREPARE@errorbar@process@#1@\endcsname+%
\expandafter\noexpand\csname pgfplots@PREPARE@errorbar@process@#1@\endcsname-%
}%
\fi
\fi
}
\def\pgfplots@PREPARE@errorbar@processing@in@dir@reset#1{%
\expandafter\let\csname pgfplots@current@point@error@#1@plus\endcsname=\pgfutil@empty
\expandafter\let\csname pgfplots@current@point@error@#1@minus\endcsname=\pgfutil@empty
}%
% #1: one of x,y, or z
% #2: either '+' or '-', denotes the direction of the error
% bar
%
% PRECONDITION: \pgfplots@error@coord contains the value which is to
% be stored as \pgfplots@current@point@error@#1@plus or
% \pgfplots@current@point@error@#1@minus
%
% POSTCONDITION: limits updated and
% \pgfplots@current@point@error@#1@plus or
% \pgfplots@current@point@error@#1@minus
% is defined.
\def\pgfplots@PREPARE@errorbar@stream@it@#1#2{%
\ifx\pgfplots@error@coord\pgfutil@empty
\else
\expandafter\let\expandafter\pgfplots@current@point@@old\csname pgfplots@current@point@#1\endcsname
\expandafter\let\csname pgfplots@current@point@#1\endcsname=\pgfplots@error@coord
\pgfplotsaxisupdatelimitsforcoordinate\pgfplots@current@point@x\pgfplots@current@point@y\pgfplots@current@point@z
\expandafter\let\csname pgfplots@current@point@#1\endcsname=\pgfplots@current@point@@old
\fi
%
% ... and remember what we need! This value will be stored as
% "visualization depends on"
\expandafter\let\csname pgfplots@current@point@error@#1@\pgfplots@errorbars@plusminus#2\endcsname=\pgfplots@error@coord
}%
\def\pgfplots@PREPARE@errorbar@stream@it@empty#1#2{%
% ... and remember what we need! This value will be stored as
% "visualization depends on"
\expandafter\let\csname pgfplots@current@point@error@#1@\pgfplots@errorbars@plusminus#2\endcsname=\pgfutil@empty
}
\def\pgfplots@errorbars@plusminus#1{%
\if#1+%
plus%
\else
minus%
\fi
}%
% A dummy plot handler which is used in a special visualization phase
% for error bars.
\def\pgfplots@errorbars@plot@handler{%
\gdef\pgf@plotstreamstart{%
\pgfplots@streamerrorbar@directdraw
\global\let\pgf@plotstreampoint=\pgfplots@errorbars@plot@handler@point
\global\let\pgf@plotstreamspecial=\relax
\global\let\pgf@plotstreamend=\pgfplots@streamerrorbarend
\pgfplots@streamerrorbarstart
}%
}%
\def\pgfplots@errorbars@plot@handler@point#1{%
\pgf@process{#1}%
\edef\pgfplots@errorbars@src{(\the\pgf@x,\the\pgf@y)}%
%
% we want to allow scatter plots to vary depending on 'point
% meta'. This here does not hurt:
\pgfplotsaxisvisphasetransformpointmetaifany
%
\pgfplots@errorbars@plot@handler@point@dir x%
\pgfplots@errorbars@plot@handler@point@dir y%
\ifpgfplots@curplot@threedim
\pgfplots@errorbars@plot@handler@point@dir z%
\fi
}
% #1: one of x,y, or z
% #2: the error bar value in dir #1
% output: \pgfplots@errorbars@trg in the form (,,)
\def\pgfplots@errorbars@to@pt#1#2{%
\begingroup
\expandafter\let\csname pgfplots@current@point@#1\endcsname=#2%
\ifpgfplots@curplot@threedim
\edef\pgfplotsretval{(\pgfplots@current@point@x,\pgfplots@current@point@y,\pgfplots@current@point@z)}%
\else
\edef\pgfplotsretval{(\pgfplots@current@point@x,\pgfplots@current@point@y)}%
\fi
\global\let\pgfplots@errorbars@trg=\pgfplotsretval
\endgroup
}%
% #1: a <\macro> containing the value
% #2: either x,y, or z
\def\pgfplots@errorbars@plot@handler@point@dir@@#1#2{%
\ifx#1\pgfutil@empty
\else
\pgfplotsaxisvisphasetransformcoordinateentry{#2}{#1}%
\pgfplots@errorbars@to@pt{#2}{\pgfmathresult}%
\pgfplots@streamerrorbarcoords{\pgfplots@errorbars@src}{\pgfplots@errorbars@trg}%
\fi
}%
\def\pgfplots@errorbars@plot@handler@point@dir#1{%
\ifcase\csname pgfplots@errorbars@#1direction\endcsname
% none
\or
% plus
\expandafter\pgfplots@errorbars@plot@handler@point@dir@@\csname pgfplots@current@point@error@#1@plus\endcsname#1%
\or
% minus
\expandafter\pgfplots@errorbars@plot@handler@point@dir@@\csname pgfplots@current@point@error@#1@minus\endcsname#1%
\or
% both
\expandafter\pgfplots@errorbars@plot@handler@point@dir@@\csname pgfplots@current@point@error@#1@plus\endcsname#1%
\expandafter\pgfplots@errorbars@plot@handler@point@dir@@\csname pgfplots@current@point@error@#1@minus\endcsname#1%
\fi
}%
\def\pgfplots@streamerrorbarstart{%
}%
\def\pgfplots@streamerrorbarend{%
}%
\def\pgfplots@streamerrorbarcoords#1#2{%
}%
\def\pgfplots@streamerrorbar@directdraw{%
\def\pgfplots@streamerrorbarstart{}%
\def\pgfplots@streamerrorbarend{}%
\def\pgfplots@streamerrorbarcoords##1##2{%
\pgfplots@errorbar@draw{##1}{##2}%
}%
}
\newif\ifpgfplots@error@bars@allow@name@path
% This thing here shall draw all error bar commands listed in '#2'.
%
% It will be invoked when any plotting commands take effect (that
% means all limits are computed; the axis has been drawn,
% transformations are set up...)
\def\pgfplots@errorbars@finishwithstyleoptions[#1]#2{%
\scope[/pgfplots/.cd,#1,/pgfplots/every error bar]% it uses the /pgfplots/.unknown handler
\ifpgfplots@error@bars@allow@name@path
\else
% 'name path=xxx' should NOT include errors bars! Only the
% main path.
\def\tikz@intersect@addto@path@names##1##2{}%
\fi
#2%
\endscope
}
\def\pgfplots@errorbar@draw#1#2{%
\begingroup
\pgfplots@restorepgfpoint
\pgfkeysvalueof{/pgfplots/error bars/draw error bar/.@cmd}{#1}{#2}\pgfeov%
\endgroup
}%
\def\pgfplotsaxis@visphase@name@errorbars{errorbars}
\expandafter\def\csname pgfplots@visphase@\pgfplotsaxis@visphase@name@errorbars\endcsname{%
\pgfplots@errorbars@finishwithstyleoptions[]{%
\let\tikz@plot@handler=\pgfplots@errorbars@plot@handler
\pgfplots@coord@stream@finalize@storedcoords@START
}%
}%
\endinput