%--------------------------------------------
%
% 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/2008/2009 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 .
%
%--------------------------------------------
\edef\pgfplots@oldcatcodesemicolon{\the\catcode`\;}%
\catcode`\;=12
\input pgfplotscore.code.tex
\input pgfplotslibrary.code.tex
\input pgfplotsoldpgfsupp_loader.code.tex
\input pgfplotsutil.code.tex
\input pgfplotscolormap.code.tex
\input pgfplotsstackedplots.code.tex
\input pgfplotscoordprocessing.code.tex
\input pgfplotsticks.code.tex
\usetikzlibrary{decorations,decorations.pathmorphing,decorations.pathreplacing}
% FIXME: reduce number of variables!
\newif\ifpgfplots@bb@isactive
\newif\ifpgfplots@xislinear
\newif\ifpgfplots@has@label@information
\newif\ifpgfplots@yislinear
\newif\ifpgfplots@zislinear
\newif\ifpgfplots@axis@equal
\newif\ifpgfplots@axis@equal@image
\newif\ifpgfplots@reverse@legend
\newif\ifpgfplots@allow@reversal@of@rel@axis@cs
\newif\ifpgfplots@scanline@verbose
\newcount\pgfplots@numplots
\newdimen\pgfplots@xmin@reg
\newdimen\pgfplots@xmax@reg
\newdimen\pgfplots@ymin@reg
\newdimen\pgfplots@ymax@reg
\newdimen\pgfplots@zmin@reg
\newdimen\pgfplots@zmax@reg
\newif\ifpgfplots@warn@for@filter@discards
\newif\ifpgfplots@isuniformtick
\newif\ifpgfplots@clip@limits
\newif\ifpgfplots@clip
\newif\ifpgfplots@plot@coords@mathparser
\pgfplots@plot@coords@mathparsertrue
\pgfplots@cliptrue
\newif\ifpgfplots@enlargelimits
\newif\ifpgfplots@enlargelimits@rel@thresh
\newif\ifpgfplots@enlargelimits@auto
\newif\ifpgfplots@tickshow
\newif\ifpgfplots@scatterplotenabled
\newif\ifpgfplots@xminorticks
\newif\ifpgfplots@xmajorticks
\newif\ifpgfplots@yminorticks
\newif\ifpgfplots@ymajorticks
\newif\ifpgfplots@zminorticks
\newif\ifpgfplots@zmajorticks
\newif\ifpgfplots@xminorgrids
\newif\ifpgfplots@xmajorgrids
\newif\ifpgfplots@yminorgrids
\newif\ifpgfplots@ymajorgrids
\newif\ifpgfplots@zminorgrids
\newif\ifpgfplots@zmajorgrids
\newif\ifpgfplots@clip@marker@paths
\newif\ifpgfplots@axis@on@top
\newif\ifpgfplots@separate@axis@lines
\newif\ifpgfplots@identify@log@minor@tick@pos
\newif\ifpgfplots@disablelogfilter@x
\newif\ifpgfplots@disablelogfilter@y
\newif\ifpgfplots@disablelogfilter@z
\newif\ifpgfplots@disabledatascaling
\newif\ifpgfplots@hide@x
\newif\ifpgfplots@hide@y
\newif\ifpgfplots@hide@z
\newif\ifpgfplots@shownothingof@x
\newif\ifpgfplots@shownothingof@y
\newif\ifpgfplots@shownothingof@z
\newif\ifpgfplots@is@old@list@format
\newif\ifpgfplots@errorbars@enabled
\newif\ifpgfplots@scale@only@axis
\newif\ifpgfplots@xticklabel@interval
\newif\ifpgfplots@yticklabel@interval
\newif\ifpgfplots@zticklabel@interval
\newif\ifpgfplots@stackedmode
\newif\ifpgfplots@stacked@reverse
\newif\ifpgfplots@stacked@plus
\newif\ifpgfplots@plot@file@skipfirst
\newif\ifpgfplots@threedim
\newif\ifpgfplotsthreedim
\newif\ifpgfplots@curplot@isirrelevant
\newif\ifpgfplots@colorbar
\newif\ifpgfplots@deprecated@anchors
\newif\ifpgfplots@translategnuplot
\pgfplots@translategnuplottrue
\let\pgfnodepartimagebox=\pgfnodeparttextbox
\newif\ifpgfplots@collect@firstplot@astick
\newif\ifpgfplots@units@use
\def\pgfplots@errorbars@xdirection{0}% pre-init, see below
\def\pgfplots@errorbars@ydirection{0}%
\def\pgfplots@errorbars@zdirection{0}%
\def\axisdefaultwidth{240pt}
\def\axisdefaultheight{207pt}
% Invokes '#2' if a cycle list named '#1' exists and '#3' if not.
\long\def\pgfplotsifcyclelistexists#1#2#3{%
\pgfutil@ifundefined{pgfp@cyclist@\string#1@}{#3}{#2}%
}%
% Creates a named plot cycle list.
%
% #1: the name of the final list. Can be used in 'cycle list name'
% #2: the list entries. You can use either a comma-separated list or
% a '\\'-terminated list. The latter case also requires '\\'
% AFTER the last entry.
\def\pgfplotscreateplotcyclelist#1#2{\expandafter\pgfplots@assign@list\csname pgfp@cyclist@\string#1@\endcsname{#2}}
\pgfplotscreateplotcyclelist{black white}{%
every mark/.append style={fill=gray},mark=*\\%
every mark/.append style={fill=gray},mark=square*\\%
every mark/.append style={fill=gray},mark=otimes*\\%
mark=star\\%
every mark/.append style={fill=gray},mark=diamond*\\%
densely dashed,every mark/.append style={solid,fill=gray},mark=*\\%
densely dashed,every mark/.append style={solid,fill=gray},mark=square*\\%
densely dashed,every mark/.append style={solid,fill=gray},mark=otimes*\\%
densely dashed,every mark/.append style={solid},mark=star\\%
densely dashed,every mark/.append style={solid,fill=gray},mark=diamond*\\%
}
\pgfplotscreateplotcyclelist{color}{%
blue,every mark/.append style={fill=blue!80!black},mark=*\\%
red,every mark/.append style={fill=red!80!black},mark=square*\\%
brown!60!black,every mark/.append style={fill=brown!80!black},mark=otimes*\\%
black,mark=star\\%
blue,every mark/.append style={fill=blue!80!black},mark=diamond*\\%
red,densely dashed,every mark/.append style={solid,fill=red!80!black},mark=*\\%
brown!60!black,densely dashed,every mark/.append style={solid,fill=brown!80!black},mark=square*\\%
black,densely dashed,every mark/.append style={solid,fill=gray},mark=otimes*\\%
blue,densely dashed,mark=star,every mark/.append style=solid\\%
red,densely dashed,every mark/.append style={solid,fill=red!80!black},mark=diamond*\\%
}
\pgfplotscreateplotcyclelist{linestyles}{solid,dashed,dotted}
\pgfplotscreateplotcyclelist{color list}{red,blue,black,yellow,brown,teal,orange,violet,cyan,green!70!black,magenta,gray}
\pgfplotscreateplotcyclelist{mark list}{%
every mark/.append style={fill=.!80!black},mark=*\\%
every mark/.append style={fill=.!80!black},mark=square*\\%
every mark/.append style={fill=.!80!black},mark=triangle*\\%
mark=star\\%
every mark/.append style={fill=.!80!black},mark=diamond*\\%
every mark/.append style={fill=.!80!black},mark=otimes*\\%
mark=|\\%
every mark/.append style={fill=.!80!black},mark=pentagon*\\%
mark=text,text mark=p\\%
mark=text,text mark=a\\%
}
\pgfplotscreateplotcyclelist{exotic}{%
teal,every mark/.append style={fill=teal!80!black},mark=*\\%
orange,every mark/.append style={fill=orange!80!black},mark=square*\\%
cyan!60!black,every mark/.append style={fill=cyan!80!black},mark=otimes*\\%
red!70!white,mark=star\\%
lime!80!black,every mark/.append style={fill=lime},mark=diamond*\\%
red,densely dashed,every mark/.append style={solid,fill=red!80!black},mark=*\\%
yellow!60!black,densely dashed,every mark/.append style={solid,fill=yellow!80!black},mark=square*\\%
black,every mark/.append style={solid,fill=gray},mark=otimes*\\%
blue,densely dashed,mark=star,every mark/.append style=solid\\%
red,densely dashed,every mark/.append style={solid,fill=red!80!black},mark=diamond*\\%
}
% backwards compatibility:
\let\pgfcreateplotcyclelist=\pgfplotscreateplotcyclelist
\pgfplots@letcsname{pgfp@cyclist@\string\blackwhiteplotspeclist @}={pgfp@cyclist@black white@}%
\pgfplots@letcsname{pgfp@cyclist@\string\coloredplotspeclist @}={pgfp@cyclist@color@}%
%%%%
\def\pgfplotsset#{\pgfqkeys{/pgfplots}}
\def\pgfplotsdeprecatedstylecheck#1{%
\pgfkeysifdefined{#1/.@cmd}{%
\begingroup
\edef\pgfkeyscurrentkey{#1}%
\pgfkeyssplitpath
\pgfplots@warning{Loading deprecated style option
\pgfkeyscurrentpath/\pgfkeyscurrentname.
Please replace '\string\tikzstyle{\pgfkeyscurrentname}'
with '\string\pgfplotsset{\pgfkeyscurrentname/.style={}}'
(or '\string\pgfplotsset{\pgfkeyscurrentname/.append style={}}').}%
\endgroup
\pgfkeysvalueof{#1/.@cmd}\pgfeov
}{}%
}%
\def\pgfplots@scaled@ticks@setargs#1#2{%
\pgfutil@in@{:}{#2}%
\ifpgfutil@in@
\pgfplots@scaled@ticks@setargs@{#1}#2\pgfplots@EOI
\else
\expandafter\pgfutil@in@\expandafter{\pgfplots@activecolon}{#2}%
\ifpgfutil@in@
\pgfplots@scaled@ticks@setargs@active{#1}#2\pgfplots@EOI
\else
\pgfkeysalso{/pgfplots/scaled #1 ticks/#2}%
\fi
\fi
}%
\def\pgfplots@scaled@ticks@setargs@#1#2:#3\pgfplots@EOI{%
\pgfkeysalso{/pgfplots/scaled #1 ticks/#2=#3}%
}
{
\catcode`\:=\active
\gdef\pgfplots@scaled@ticks@setargs@active#1#2:#3\pgfplots@EOI{%
\pgfkeysalso{/pgfplots/scaled #1 ticks/#2=#3}%
}
}
% Sets the keys for /pgfplots/[xyz]ticklabel anchor.
% #1: one of [xyz]
% #2: the value
\def\pgfplots@setticklabel@anchor@for#1#2{%
\def\pgfplots@loc@TMPa{#2}%
\def\pgfplots@loc@TMPb{auto}%
\ifx\pgfplots@loc@TMPa\pgfplots@loc@TMPb
\expandafter\def\csname pgfplots@ticklabel@anchor@#1\endcsname{0}%
\else
\def\pgfplots@loc@TMPb{near ticklabel}%
\ifx\pgfplots@loc@TMPa\pgfplots@loc@TMPb
\expandafter\def\csname pgfplots@ticklabel@anchor@#1\endcsname{1}%
\else
\def\pgfplots@loc@TMPb{tikz}%
\ifx\pgfplots@loc@TMPa\pgfplots@loc@TMPb
\expandafter\def\csname pgfplots@ticklabel@anchor@#1\endcsname{2}%
\else
\pgfplots@error{Sorry, I got an unexpected value for '#1ticklabel anchor': '#2'. Expected one of 'auto', 'near ticklabel' or 'tikz'.}%
\fi
\fi
\fi
}%
% Does the work for '[xyz]ticklabel pos'.
%
% #1: the axis (x,y or z).
% #2: the key argument. Accepts
% 'lower',
% 'upper',
% 'default' -> depends on 'tick pos'
% 'left' = 'lower',
% 'bottom' = 'lower',
% 'right' = 'upper'
% 'top' = 'upper'.
%
\def\pgfplots@setkey@ticklabelpos#1#2{%
\def\pgfplots@loc@TMPa{#2}%
\def\pgfplots@loc@TMPb{lower}%
\expandafter\def\csname pgfplots@#1ticklabel@pos\endcsname{l}%
\ifx\pgfplots@loc@TMPa\pgfplots@loc@TMPb
\else
\def\pgfplots@loc@TMPb{upper}%
\ifx\pgfplots@loc@TMPa\pgfplots@loc@TMPb
\expandafter\def\csname pgfplots@#1ticklabel@pos\endcsname{u}%
\else
\def\pgfplots@loc@TMPb{default}%
\ifx\pgfplots@loc@TMPa\pgfplots@loc@TMPb
\expandafter\def\csname pgfplots@#1ticklabel@pos\endcsname{}%
\else
\def\pgfplots@loc@TMPb{left}%
\ifx\pgfplots@loc@TMPa\pgfplots@loc@TMPb
\else
\def\pgfplots@loc@TMPb{right}%
\ifx\pgfplots@loc@TMPa\pgfplots@loc@TMPb
\expandafter\def\csname pgfplots@#1ticklabel@pos\endcsname{u}%
\else
\expandafter\def\csname pgfplots@#1ticklabel@pos\endcsname{}%
\pgfplots@error{Sorry, the key '#1ticklabel pos' does not know what to do with '#2'... accepted values are 'default, 'lower', 'upper' and some aliases. Maybe you misspelled it?}%
\fi
\fi
\fi
\fi
\fi
}%
% Sets 'x dir={normal,reverse}'
% #1: an axis
% #2: the key's value to apply
\def\pgfplots@setkey@axisdir@for#1#2{%
\def\pgfplots@loc@TMPa{#2}%
\def\pgfplots@loc@TMPb{normal}%
\ifx\pgfplots@loc@TMPa\pgfplots@loc@TMPb
\pgfkeyssetvalue{/pgfplots/#1 dir/value}{n}%
\else
\def\pgfplots@loc@TMPb{reverse}%
\ifx\pgfplots@loc@TMPa\pgfplots@loc@TMPb
\pgfkeyssetvalue{/pgfplots/#1 dir/value}{r}%
\else
\pgfkeyssetvalue{/pgfplots/#1 dir/value}{n}%
\pgfplots@error{Sorry, the key '#1 dir' does not know what to do with '#2'... accepted values are 'normal' or 'reverse'.}%
\fi
\fi
}%
\def\pgfplots@meshmode{n}% none
\def\pgfplotsplothandlermesh@flatmode{m}% mean
\def\pgfplots@cycle@multi@list@EOI{\pgfplots@cycle@multi@list@EOI}%
\def\pgfplots@cycle@multi@list#1{%
\def\pgfplots@loc@TMPb{0}%
\gdef\pgfplots@cycle@multi@list@finalize@{}%
\pgfplots@cycle@multi@list@#1\nextlist\pgfplots@cycle@multi@list@EOI
}%
\def\pgfplots@cycle@multi@list@#1\nextlist{%
\def\pgfplots@loc@TMPa{#1}%
\ifx\pgfplots@loc@TMPa\pgfutil@empty
% ignore it if someone provided too many \nextlist commands.
\else
% parse and store list:
\begingroup
\def\pgfplots@as@string{#1}% this deals with control sequences inside of #1.
\pgfplots@command@to@string\pgfplots@as@string\pgfplots@as@string
\expandafter\pgfplots@cycle@multi@list@findnamed\pgfplots@as@string\pgfplots@EOI
\global\let\pgfplots@glob@TMPa=\pgfplots@loc@TMPa
\endgroup
\ifx\pgfplots@glob@TMPa\pgfutil@empty
% create it:
\pgfplotscreateplotcyclelist{/pgfplots/cycle multi list/@list\pgfplots@loc@TMPb}{#1}%
\else
% ok, take an existing one
\expandafter\let\csname pgfp@cyclist@/pgfplots/cycle multi list/@list\pgfplots@loc@TMPb @\endcsname=\pgfplots@glob@TMPa
\fi
\begingroup
\expandafter\pgfplotslistsize\csname pgfp@cyclist@/pgfplots/cycle multi list/@list\pgfplots@loc@TMPb @\endcsname\to\c@pgf@counta
\edef\pgfmathresult{\the\c@pgf@counta}%
\pgfmath@smuggleone\pgfmathresult
\endgroup
\pgfkeyslet{/pgfplots/cycle multi list/@totalN\pgfplots@loc@TMPb}\pgfmathresult
\pgfkeyslet{/pgfplots/cycle multi list/@N\pgfplots@loc@TMPb}\pgfmathresult
%\def\temp{#1}\message{cycle multi list/@list={\meaning\temp}; /@N\pgfplots@loc@TMPb = \pgfkeysvalueof{/pgfplots/cycle multi list/@N\pgfplots@loc@TMPb}.}%
\pgfplotsutil@advancestringcounter\pgfplots@loc@TMPb
\fi
%
\pgfutil@ifnextchar{\pgfplots@cycle@multi@list@EOI}{%
\pgfplots@cycle@multi@list@finalize
}{%
\pgfplots@cycle@multi@list@
}%
}%
% checks for
% -
% - [ of]
% POSTCONDITION:
% 1. pgfplots@loc@TMPa will be \pgfutil@empty if there is no such
% list.
% 2. \pgfplots@loc@TMPa will be \let to the list if there is one.
% 3. \pgfplots@cycle@multi@list@finalize@ will contain any 'partial sublist'
% commands.
\def\pgfplots@cycle@multi@list@findnamed{\pgfutil@ifnextchar[{\pgfplots@cycle@multi@list@findnamed@}{\pgfplots@cycle@multi@list@findnamed@[]}}%
\def\pgfplots@cycle@multi@list@findnamed@[#1]#2\pgfplots@EOI{%
\def\pgfplots@loc@TMPa{#1}%
\ifx\pgfplots@loc@TMPa\pgfutil@empty
\else
\pgfplots@cycle@multi@list@findnamed@@#1 \pgfplots@EOI
\fi
\pgfplotsifcyclelistexists{#2}{%
\expandafter\let\expandafter\pgfplots@loc@TMPa\csname pgfp@cyclist@\string#2@\endcsname%
}{%
\let\pgfplots@loc@TMPa=\pgfutil@empty
}%
}
\def\pgfplots@cycle@multi@list@findnamed@@#1 {\pgfutil@ifnextchar o{\pgfplots@cycle@multi@list@findnamed@@@{#1}}{\pgfplots@cycle@multi@list@findnamed@@@{#1}of}}%
\def\pgfplots@cycle@multi@list@findnamed@@@#1of#2\pgfplots@EOI{%
\begingroup
\t@pgfplots@toka=\expandafter{\pgfplots@cycle@multi@list@finalize@}%
\t@pgfplots@tokb={#1}%
\xdef\pgfplots@cycle@multi@list@finalize@{\the\t@pgfplots@toka
\noexpand\pgfkeys{/pgfplots/cycle multi list/partial sublist={\pgfplots@loc@TMPb}{\the\t@pgfplots@tokb}}%
}%
\endgroup
}
\def\pgfplots@cycle@multi@list@finalize\pgfplots@cycle@multi@list@EOI{%
\pgfkeyslet{/pgfplots/cycle multi list/@dim}\pgfplots@loc@TMPb
\pgfplots@cycle@multi@list@finalize@
}%
\pgfkeys{%
/pgfplots/search path for tikz/.search also={/tikz,/pgfplots},
/pgfplots/.is family,
/pgfplots/scale/.is family,
/pgfplots/legend/.is family,
/pgfplots/tick/.is family,
/pgfplots/axis/.is family,
/pgfplots/descriptions/.is family,
/pgfplots/style commands/.is family,
/pgfplots/naming commands/.is family,
/pgfplots/shared with tikz/.is family,
/pgfplots/error bars/.is family,
/pgfplots/every axis/.style={},
/pgfplots/every axis/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every axis}},
/pgfplots/every axis/.belongs to family=/pgfplots/style commands,
/pgfplots/every semilogx axis/.style={},
/pgfplots/every semilogx axis/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every semilogx axis}},
/pgfplots/every semilogx axis/.belongs to family=/pgfplots/style commands,
/pgfplots/every semilogy axis/.style={},
/pgfplots/every semilogy axis/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every semilogy axis}},
/pgfplots/every semilogy axis/.belongs to family=/pgfplots/style commands,
/pgfplots/every loglog axis/.style={},
/pgfplots/every loglog axis/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every loglog axis}},
/pgfplots/every loglog axis/.belongs to family=/pgfplots/style commands,
/pgfplots/every linear axis/.style={},
/pgfplots/every linear axis/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every linear axis}},
/pgfplots/every linear axis/.belongs to family=/pgfplots/style commands,
/pgfplots/every axis plot/.style={},
/pgfplots/every axis plot/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every axis plot}},
/pgfplots/every axis plot/.belongs to family=/pgfplots/style commands,
/pgfplots/every axis plot post/.style={},
/pgfplots/every axis plot post/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every axis plot}},
/pgfplots/no marks/.style={/pgfplots/no markers},
/pgfplots/no markers/.style={/pgfplots/every axis plot post/.append style={mark=none}},
/pgfplots/every axis label/.style={},
/pgfplots/every axis label/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every axis label}},
/pgfplots/every axis label/.belongs to family=/pgfplots/descriptions,
/pgfplots/xlabel near ticks/.style={%
/pgfplots/every axis x label/.style={at={(ticklabel cs:0.5)},anchor=near ticklabel},%
/pgfplots/every x tick scale label/.style={at={(xticklabel cs:0.9,5pt)},anchor=near xticklabel,inner sep=0pt},
},%
/pgfplots/xlabel absolute/.style={%
/pgfplots/every axis x label/.style={at={(0.5,0)},below,yshift=-15pt},%
/pgfplots/every x tick scale label/.style={at={(1,0)},yshift=-2em,left,inner sep=0pt},
},%
/pgfplots/every axis x label/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every axis x label}},
/pgfplots/every axis x label/.belongs to family=/pgfplots/descriptions,
%
/pgfplots/ylabel near ticks/.style={%
/pgfplots/every axis y label/.style={at={(ticklabel cs:0.5)},rotate=90,anchor=near ticklabel},%
/pgfplots/every y tick scale label/.style={at={(yticklabel cs:1.03,-\pgfplotsvalueoflargesttickdimen y -0.3em)},anchor=south west,inner sep=0pt},
},%
/pgfplots/ylabel absolute/.style={%
/pgfplots/every axis y label/.style={at={(0,0.5)},xshift=-35pt,rotate=90},
/pgfplots/every y tick scale label/.style={at={(0,1)},above right,inner sep=0pt,yshift=0.3em},
},%
/pgfplots/every axis y label/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every axis y label}},
/pgfplots/every axis y label/.belongs to family=/pgfplots/descriptions,
/pgfplots/every axis z label/.style={at={(ticklabel cs:0.5)},rotate=90, anchor=near ticklabel},
/pgfplots/every axis z label/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every axis z label}},
/pgfplots/every axis z label/.belongs to family=/pgfplots/descriptions,
/pgfplots/every 3d description/.style={%
/pgfplots/every axis x label/.style={at={(ticklabel cs:0.5)},anchor=near ticklabel},%
/pgfplots/every axis y label/.style={at={(ticklabel cs:0.5)},anchor=near ticklabel},%
/pgfplots/every x tick scale label/.style={at={(xticklabel cs:0.95,5pt)},anchor=near xticklabel,inner sep=0pt},
/pgfplots/every y tick scale label/.style={at={(yticklabel cs:0.95,5pt)},anchor=near yticklabel,inner sep=0pt},
/pgfplots/try min ticks=3,%
},%
/pgfplots/every 3d view {0}{90}/.style={%
/pgfplots/xlabel near ticks,%
/pgfplots/ylabel near ticks,%
/pgfplots/axis on top=true,%
},%
% will be defined in \pgfplotspoint@initialisation:
%/tikz/sloped like x axis/.code={...},%
/pgfplots/title shift/.code={\pgfplots@error{Sorry, there is no 'title shift' option. Consider using 'title style={yshift=...}' (or the low level 'every axis title shift' which works only together with the initial 'every axis title' style)}},%
/pgfplots/every axis title shift/.initial=6pt,
/pgfplots/every axis title/.style={at={(0.5,1)},above,yshift=\pgfkeysvalueof{/pgfplots/every axis title shift}},
/pgfplots/every axis title/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every axis title}},
/pgfplots/every axis title/.belongs to family=/pgfplots/descriptions,
/pgfplots/every tick/.style={very thin,gray},
/pgfplots/every tick/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every tick}},
/pgfplots/every tick/.belongs to family=/pgfplots/style commands,
/pgfplots/every inner x axis line/.style={},
/pgfplots/every inner y axis line/.style={},
/pgfplots/every inner z axis line/.style={},
/pgfplots/every outer x axis line/.style={},
/pgfplots/every outer y axis line/.style={},
/pgfplots/every outer z axis line/.style={},
/pgfplots/x axis line style/.style={
/pgfplots/every outer x axis line/.append style={#1},
/pgfplots/every inner x axis line/.append style={#1},
},
/pgfplots/y axis line style/.style={
/pgfplots/every outer y axis line/.append style={#1},
/pgfplots/every inner y axis line/.append style={#1},
},
/pgfplots/z axis line style/.style={
/pgfplots/every outer z axis line/.append style={#1},
/pgfplots/every inner z axis line/.append style={#1},
},
/pgfplots/outer axis line style/.style={
/pgfplots/every outer x axis line/.append style={#1},
/pgfplots/every outer y axis line/.append style={#1}%
/pgfplots/every outer z axis line/.append style={#1}%
},
/pgfplots/inner axis line style/.style={
/pgfplots/every inner x axis line/.append style={#1},
/pgfplots/every inner y axis line/.append style={#1}%
/pgfplots/every inner z axis line/.append style={#1}%
},
/pgfplots/axis line style/.style={
/pgfplots/inner axis line style={#1},
/pgfplots/outer axis line style={#1}%
},
/pgfplots/separate axis lines/.is if=pgfplots@separate@axis@lines,
/pgfplots/separate axis lines/.default=true,
/pgfplots/every minor tick/.style={},
/pgfplots/every minor tick/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every minor tick}},
/pgfplots/every minor tick/.belongs to family=/pgfplots/style commands,
/pgfplots/every major tick/.style={},
/pgfplots/every major tick/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every major tick}},
/pgfplots/every major tick/.belongs to family=/pgfplots/style commands,
/pgfplots/every x tick/.style={},
/pgfplots/every x tick/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every x tick}},
/pgfplots/every x tick/.belongs to family=/pgfplots/style commands,
/pgfplots/every minor x tick/.style={},
/pgfplots/every minor x tick/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every minor x tick}},
/pgfplots/every minor x tick/.belongs to family=/pgfplots/style commands,
/pgfplots/every major x tick/.style={},
/pgfplots/every major x tick/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every major x tick}},
/pgfplots/every major x tick/.belongs to family=/pgfplots/style commands,
/pgfplots/every y tick/.style={},
/pgfplots/every y tick/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every y tick}},
/pgfplots/every y tick/.belongs to family=/pgfplots/style commands,
/pgfplots/every minor y tick/.style={},
/pgfplots/every minor y tick/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every minor y tick}},
/pgfplots/every minor y tick/.belongs to family=/pgfplots/style commands,
/pgfplots/every major y tick/.style={},
/pgfplots/every major y tick/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every major y tick}},
/pgfplots/every major y tick/.belongs to family=/pgfplots/style commands,
/pgfplots/every z tick/.style={},
/pgfplots/every z tick/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every z tick}},
/pgfplots/every z tick/.belongs to family=/pgfplots/style commands,
/pgfplots/every minor z tick/.style={},
/pgfplots/every minor z tick/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every minor z tick}},
/pgfplots/every minor z tick/.belongs to family=/pgfplots/style commands,
/pgfplots/every major z tick/.style={},
/pgfplots/every major z tick/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every major z tick}},
/pgfplots/every major z tick/.belongs to family=/pgfplots/style commands,
%/pgfplots/every axis grid/.style={help lines},
/pgfplots/every axis grid/.style={thin,black!25},
/pgfplots/every axis grid/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every axis grid}},
/pgfplots/every axis grid/.belongs to family=/pgfplots/style commands,
/pgfplots/every minor grid/.style={},
/pgfplots/every minor grid/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every minor grid}},
/pgfplots/every minor grid/.belongs to family=/pgfplots/style commands,
/pgfplots/every major grid/.style={},
/pgfplots/every major grid/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every major grid}},
/pgfplots/every major grid/.belongs to family=/pgfplots/style commands,
/pgfplots/every axis x grid/.style={},
/pgfplots/every axis x grid/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every axis x grid}},
/pgfplots/every axis x grid/.belongs to family=/pgfplots/style commands,
/pgfplots/every minor x grid/.style={},
/pgfplots/every minor x grid/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every minor x grid}},
/pgfplots/every minor x grid/.belongs to family=/pgfplots/style commands,
/pgfplots/every major x grid/.style={},
/pgfplots/every major x grid/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every major x grid}},
/pgfplots/every major x grid/.belongs to family=/pgfplots/style commands,
/pgfplots/every axis y grid/.style={},
/pgfplots/every axis y grid/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every axis y grid}},
/pgfplots/every axis y grid/.belongs to family=/pgfplots/style commands,
/pgfplots/every minor y grid/.style={},
/pgfplots/every minor y grid/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every minor y grid}},
/pgfplots/every minor y grid/.belongs to family=/pgfplots/style commands,
/pgfplots/every major y grid/.style={},
/pgfplots/every major y grid/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every major y grid}},
/pgfplots/every major y grid/.belongs to family=/pgfplots/style commands,
/pgfplots/every axis z grid/.style={},
/pgfplots/every axis z grid/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every axis z grid}},
/pgfplots/every axis z grid/.belongs to family=/pgfplots/style commands,
/pgfplots/every minor z grid/.style={},
/pgfplots/every minor z grid/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every minor z grid}},
/pgfplots/every minor z grid/.belongs to family=/pgfplots/style commands,
/pgfplots/every major z grid/.style={},
/pgfplots/every major z grid/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every major z grid}},
/pgfplots/every major z grid/.belongs to family=/pgfplots/style commands,
/pgfplots/every tick label/.style={},
/pgfplots/every tick label/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every tick label}},
/pgfplots/every tick label/.belongs to family=/pgfplots/style commands,
/pgfplots/every x tick label/.style={},
/pgfplots/every x tick label/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every x tick label}},
/pgfplots/every x tick label/.belongs to family=/pgfplots/style commands,
/pgfplots/every extra x tick/.style={
/pgfplots/log identify minor tick positions=true,
},
/pgfplots/every extra x tick/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every extra x tick}},
/pgfplots/every extra x tick/.belongs to family=/pgfplots/style commands,
/pgfplots/extra x tick style/.belongs to family=/pgfplots/style commands,
/pgfplots/extra x tick style/.code={%
\pgfkeysalso{/pgfplots/every extra x tick/.append style={#1}}%
},
/pgfplots/extra tick style/.code={%
\pgfkeysalso{%
/pgfplots/every extra x tick/.append style={#1},%
/pgfplots/every extra y tick/.append style={#1},%
/pgfplots/every extra z tick/.append style={#1}}%
},
/pgfplots/every x tick scale label/.initial=,% set by compat/labels=...
/pgfplots/every x tick scale label/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every x tick scale label}},
/pgfplots/every x tick scale label/.belongs to family=/pgfplots/descriptions,
/pgfplots/every y tick label/.style={},
/pgfplots/every y tick label/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every y tick label}},
/pgfplots/every y tick label/.belongs to family=/pgfplots/style commands,
/pgfplots/every extra y tick/.style={
/pgfplots/log identify minor tick positions=true,
},
/pgfplots/every extra y tick/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every extra y tick}},
/pgfplots/every extra y tick/.belongs to family=/pgfplots/style commands,
/pgfplots/extra y tick style/.belongs to family=/pgfplots/style commands,
/pgfplots/extra y tick style/.code={%
\pgfkeysalso{/pgfplots/every extra y tick/.append style={#1}}%
},
/pgfplots/every y tick scale label/.initial=,% set by compat/labels=...
/pgfplots/every y tick scale label/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every y tick scale label}},
/pgfplots/every y tick scale label/.belongs to family=/pgfplots/descriptions,
/pgfplots/every z tick label/.style={},
/pgfplots/every z tick label/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every z tick label}},
/pgfplots/every z tick label/.belongs to family=/pgfplots/style commands,
/pgfplots/every extra z tick/.style={
/pgfplots/log identify minor tick positions=true,
},
/pgfplots/every extra z tick/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every extra z tick}},
/pgfplots/every extra z tick/.belongs to family=/pgfplots/style commands,
/pgfplots/extra z tick style/.belongs to family=/pgfplots/style commands,
/pgfplots/extra z tick style/.code={%
\pgfkeysalso{/pgfplots/every extra z tick/.append style={#1}}%
},
/pgfplots/every z tick scale label/.style={at={(zticklabel cs:1.2,-\pgfplotsvalueoflargesttickdimen z -0.3em)},anchor=near zticklabel,inner sep=0pt},
/pgfplots/every z tick scale label/.belongs to family=/pgfplots/descriptions,
/pgfplots/every axis legend/.style={%
cells={anchor=center},
inner xsep=3pt,inner ysep=2pt,nodes={inner sep=2pt,text depth=0.15em},
anchor=north east,%
shape=rectangle,%
fill=white,%
draw=black,
at={(0.98,0.98)},
},
/pgfplots/every axis legend/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every axis legend}},
/pgfplots/every axis legend/.belongs to family=/pgfplots/style commands,
%
% Colorbar interface:
/pgfplots/colorbar/.is if=pgfplots@colorbar,
/pgfplots/colorbar/.default=true,
/pgfplots/colorbar right/.style={%
/pgfplots/colorbar=true,
/pgfplots/colorbar shift/.style={xshift=0.3cm},
/pgfplots/every colorbar/.style={%
title=,
xlabel=,
ylabel=,
zlabel=,
legend entries=,
axis on top,
at={(parent axis.right of north east)},
anchor=north west,
grid=none,
xmin=0,
xmax=1,
ymin=\pgfkeysvalueof{/pgfplots/point meta min},
ymax=\pgfkeysvalueof{/pgfplots/point meta max},
plot graphics/xmin=0,%
plot graphics/xmax=1,
plot graphics/ymin=\pgfkeysvalueof{/pgfplots/point meta min},
plot graphics/ymax=\pgfkeysvalueof{/pgfplots/point meta max},
enlargelimits=false,
scale only axis,
height=\pgfkeysvalueof{/pgfplots/parent axis height},%
x=\pgfkeysvalueof{/pgfplots/colorbar/width},
xtick=\empty,
xticklabel=,
ytick=,
yticklabel=,
yticklabel pos=right,
colorbar vertical/lowlevel,
}%
},%
/pgfplots/colorbar left/.style={%
/pgfplots/colorbar right,
/pgfplots/colorbar shift/.style={xshift=-0.3cm},
/pgfplots/every colorbar/.append style={%
at={(parent axis.left of north west)},
anchor=north east,
yticklabel pos=left,
}%
},%
/pgfplots/colorbar horizontal/.style={%
/pgfplots/colorbar=true,
/pgfplots/colorbar shift/.style={yshift=-0.3cm},
/pgfplots/every colorbar/.style={%
title=,
xlabel=,
ylabel=,
zlabel=,
legend entries=,
axis on top,
at={(parent axis.below south west)},
anchor=north west,
grid=none,
ymin=0,
ymax=1,
xmin=\pgfkeysvalueof{/pgfplots/point meta min},
xmax=\pgfkeysvalueof{/pgfplots/point meta max},
plot graphics/ymin=0,%
plot graphics/ymax=1,
plot graphics/xmin=\pgfkeysvalueof{/pgfplots/point meta min},
plot graphics/xmax=\pgfkeysvalueof{/pgfplots/point meta max},
enlargelimits=false,
scale only axis,
width=\pgfkeysvalueof{/pgfplots/parent axis width},%
y=\pgfkeysvalueof{/pgfplots/colorbar/width},
xticklabel pos=left,
xtick=,
xticklabel=,
ytick=\empty,
colorbar horizontal/lowlevel,
}%
},%
% You might wonder why this special treatment with '/lowlevel'
% keys is necessary. Well, It turned out that using '##' inside of
% styles is incompatible with '.add code' -- and therefor also
% with '.append style'. This here is a work-around which works.
/pgfplots/colorbar vertical/lowlevel/.style={%
plot graphics/lowlevel draw/.code 2 args={%
\if\pgfkeysvalueof{/pgfplots/y dir/value}n%
\pgfplotscolormaptoshadingspec{\pgfkeysvalueof{/pgfplots/colormap name}}{##2}\pgfplots@loc@TMPa
\else
\pgfplotscolormapreversedtoshadingspec{\pgfkeysvalueof{/pgfplots/colormap name}}{##2}\pgfplots@loc@TMPa
\fi
\def\pgfplots@loc@TMPb{\pgfdeclareverticalshading{tempshading}{\pgfkeysvalueof{/pgfplots/colorbar/width}}}%
\expandafter\pgfplots@loc@TMPb\expandafter{\pgfplots@loc@TMPa}%
\pgfuseshading{tempshading}%
},%
},
/pgfplots/colorbar horizontal/lowlevel/.style={%
plot graphics/lowlevel draw/.code 2 args={%
\if\pgfkeysvalueof{/pgfplots/x dir/value}n%
\pgfplotscolormaptoshadingspec{\pgfkeysvalueof{/pgfplots/colormap name}}{##1}\pgfplots@loc@TMPa
\else
\pgfplotscolormapreversedtoshadingspec{\pgfkeysvalueof{/pgfplots/colormap name}}{##1}\pgfplots@loc@TMPa
\fi
\def\pgfplots@loc@TMPb{\pgfdeclarehorizontalshading{tempshading}{\pgfkeysvalueof{/pgfplots/colorbar/width}}}%
\expandafter\pgfplots@loc@TMPb\expandafter{\pgfplots@loc@TMPa}%
\pgfuseshading{tempshading}%
},%
},%
/pgfplots/colorbar right,
/pgfplots/colorbar=false,
/pgfplots/colorbar style/.style={/pgfplots/every colorbar/.append style={#1}},
/pgfplots/colorbar/width/.initial=0.5cm,
/pgfplots/colorbar/draw/.code={%
\axis[every colorbar,colorbar shift,colorbar=false]
\addplot graphics {};
\endaxis
},%
% tick options:
/pgfplots/xticklabel/.store in= \pgfplots@xticklabel,
/pgfplots/xticklabel/.belongs to family=/pgfplots/tick,
/pgfplots/xticklabel=,
/pgfplots/xticklabels/.belongs to family=/pgfplots/tick,
/pgfplots/xticklabels/.code={%
\pgfplotslistnew\pgfplots@xticklabels{#1}%
\let\pgfplots@xticklabel=\pgfplots@user@ticklabel@list@x
},
% #1 table name or macro
% #2 column name (or alias or create on use)
/pgfplots/xticklabels from table/.code 2 args={%
\pgfplotstablegetcolumn{#2}\of{#1}\to\pgfplots@xticklabels
\let\pgfplots@xticklabel=\pgfplots@user@ticklabel@list@x
},
/pgfplots/xticklabels from table/.belongs to family=/pgfplots/tick,
/pgfplots/yticklabels/.belongs to family=/pgfplots/tick,
/pgfplots/yticklabels/.code={%
\pgfplotslistnew\pgfplots@yticklabels{#1}%
\let\pgfplots@yticklabel=\pgfplots@user@ticklabel@list@y
},
% #1 table name or macro
% #2 column name (or alias or create on use)
/pgfplots/yticklabels from table/.code 2 args={%
\pgfplotstablegetcolumn{#2}\of{#1}\to\pgfplots@yticklabels
\let\pgfplots@yticklabel=\pgfplots@user@ticklabel@list@y
},
/pgfplots/yticklabels from table/.belongs to family=/pgfplots/tick,
/pgfplots/yticklabel/.store in= \pgfplots@yticklabel,
/pgfplots/yticklabel/.belongs to family=/pgfplots/tick,
/pgfplots/yticklabel=,
/pgfplots/zticklabels/.belongs to family=/pgfplots/tick,
/pgfplots/zticklabels/.code={%
\pgfplotslistnew\pgfplots@zticklabels{#1}%
\let\pgfplots@zticklabel=\pgfplots@user@ticklabel@list@z
},
% #1 table name or macro
% #2 column name (or alias or create on use)
/pgfplots/zticklabels from table/.code 2 args={%
\pgfplotstablegetcolumn{#2}\of{#1}\to\pgfplots@zticklabels
\let\pgfplots@zticklabel=\pgfplots@user@ticklabel@list@z
},
/pgfplots/zticklabels from table/.belongs to family=/pgfplots/tick,
/pgfplots/zticklabel/.store in= \pgfplots@zticklabel,
/pgfplots/zticklabel/.belongs to family=/pgfplots/tick,
/pgfplots/zticklabel=,
/pgfplots/x tick label as interval/.is if=pgfplots@xticklabel@interval,
/pgfplots/x tick label as interval/.default=true,
/pgfplots/x tick label as interval/.belongs to family=/pgfplots/tick,
/pgfplots/y tick label as interval/.is if=pgfplots@yticklabel@interval,
/pgfplots/y tick label as interval/.default=true,
/pgfplots/y tick label as interval/.belongs to family=/pgfplots/tick,
/pgfplots/z tick label as interval/.is if=pgfplots@zticklabel@interval,
/pgfplots/z tick label as interval/.default=true,
/pgfplots/z tick label as interval/.belongs to family=/pgfplots/tick,
/pgfplots/extra x tick label/.store in= \pgfplots@extra@xticklabel,
/pgfplots/extra x tick label/.belongs to family=/pgfplots/tick,
/pgfplots/extra x tick label=,
/pgfplots/extra x tick labels/.belongs to family=/pgfplots/tick,
/pgfplots/extra x tick labels/.code={%
\pgfplotslistnew\pgfplots@extra@xticklabels{#1}%
\let\pgfplots@extra@xticklabel=\pgfplots@user@extra@ticklabel@list@x
},
/pgfplots/extra y tick labels/.code={%
\pgfplotslistnew\pgfplots@extra@yticklabels{#1}%
\let\pgfplots@extra@yticklabel=\pgfplots@user@extra@ticklabel@list@y
},
/pgfplots/extra z tick labels/.code={%
\pgfplotslistnew\pgfplots@extra@zticklabels{#1}%
\let\pgfplots@extra@zticklabel=\pgfplots@user@extra@ticklabel@list@z
},
/pgfplots/xtick/.store in= \pgfplots@xtick,
/pgfplots/xtick/.belongs to family=/pgfplots/tick,
/pgfplots/xtick=,
/pgfplots/extra x ticks/.store in=\pgfplots@extra@xtick,
/pgfplots/extra x ticks/.belongs to family=/pgfplots/tick,
/pgfplots/extra x ticks=,
/pgfplots/xtickten/.store in= \pgfplots@xtickten,
/pgfplots/xtickten/.belongs to family=/pgfplots/tick,
/pgfplots/xtickten=,
/pgfplots/extra y tick label/.store in= \pgfplots@extra@yticklabel,
/pgfplots/extra y tick label/.belongs to family=/pgfplots/tick,
/pgfplots/extra y tick label=,
/pgfplots/ytick/.store in= \pgfplots@ytick,
/pgfplots/ytick/.belongs to family=/pgfplots/tick,
/pgfplots/ytick=,
/pgfplots/extra y ticks/.store in=\pgfplots@extra@ytick,
/pgfplots/extra y ticks/.belongs to family=/pgfplots/tick,
/pgfplots/extra y ticks=,
/pgfplots/ytickten/.store in= \pgfplots@ytickten,
/pgfplots/ytickten/.belongs to family=/pgfplots/tick,
/pgfplots/ytickten=,
/pgfplots/extra z tick label/.store in= \pgfplots@extra@zticklabel,
/pgfplots/extra z tick label/.belongs to family=/pgfplots/tick,
/pgfplots/extra z tick label=,
/pgfplots/ztick/.store in= \pgfplots@ztick,
/pgfplots/ztick/.belongs to family=/pgfplots/tick,
/pgfplots/ztick=,
/pgfplots/extra z ticks/.store in=\pgfplots@extra@ztick,
/pgfplots/extra z ticks/.belongs to family=/pgfplots/tick,
/pgfplots/extra z ticks=,
/pgfplots/ztickten/.store in= \pgfplots@ztickten,
/pgfplots/ztickten/.belongs to family=/pgfplots/tick,
/pgfplots/ztickten=,
/pgfplots/tick scale binop/.initial=\cdot,
/pgfplots/xtick scale label code/.code={$\pgfkeysvalueof{/pgfplots/tick scale binop} 10^{#1}$},
/pgfplots/xtick scale label code/.belongs to family=/pgfplots/tick,
/pgfplots/ytick scale label code/.code={$\pgfkeysvalueof{/pgfplots/tick scale binop} 10^{#1}$},
/pgfplots/ytick scale label code/.belongs to family=/pgfplots/tick,
/pgfplots/ztick scale label code/.code={$\pgfkeysvalueof{/pgfplots/tick scale binop} 10^{#1}$},
/pgfplots/ztick scale label code/.belongs to family=/pgfplots/tick,
/pgfplots/tick scale label code/.style={%
/pgfplots/xtick scale label code={#1},
/pgfplots/ytick scale label code={#1}%
/pgfplots/ztick scale label code={#1}%
},%
/pgfplots/scaled x ticks/.code={\pgfplots@scaled@ticks@setargs{x}{#1}},
/pgfplots/scaled x ticks/false/.code= {\def\pgfplots@scaled@ticks@x@choice{0}},
/pgfplots/scaled x ticks/true/.code= {\def\pgfplots@scaled@ticks@x@choice{1}},
/pgfplots/scaled x ticks/base 10/.code= {\def\pgfplots@scaled@ticks@x@choice{2}\def\pgfplots@scaled@ticks@x@arg{#1}},
/pgfplots/scaled x ticks/real/.code= {%
\def\pgfplots@scaled@ticks@x@choice{3}\def\pgfplots@scaled@ticks@x@arg{#1}%
\pgfkeys{/pgfplots/xtick scale label code/.code={$\pgfkeysvalueof{/pgfplots/tick scale binop} \pgfmathprintnumber{#1}$}}},
/pgfplots/scaled x ticks/manual/.code 2 args= {%
\def\pgfplots@scaled@ticks@x@choice{4}\def\pgfplots@scaled@ticks@x@arg##1{#2}%
\pgfkeys{/pgfplots/xtick scale label code/.code={#1}}},
/pgfplots/scaled x ticks/.belongs to family=/pgfplots/tick,
/pgfplots/scaled x ticks=true,
/pgfplots/scaled y ticks/.code={\pgfplots@scaled@ticks@setargs{y}{#1}},
/pgfplots/scaled y ticks/false/.code= {\def\pgfplots@scaled@ticks@y@choice{0}},
/pgfplots/scaled y ticks/true/.code= {\def\pgfplots@scaled@ticks@y@choice{1}},
/pgfplots/scaled y ticks/base 10/.code= {\def\pgfplots@scaled@ticks@y@choice{2}\def\pgfplots@scaled@ticks@y@arg{#1}},
/pgfplots/scaled y ticks/real/.code= {%
\def\pgfplots@scaled@ticks@y@choice{3}\def\pgfplots@scaled@ticks@y@arg{#1}%
\pgfkeys{/pgfplots/ytick scale label code/.code={$\pgfkeysvalueof{/pgfplots/tick scale binop} \pgfmathprintnumber{#1}$}}},
/pgfplots/scaled y ticks/manual/.code 2 args= {%
\def\pgfplots@scaled@ticks@y@choice{4}\def\pgfplots@scaled@ticks@y@arg##1{#2}%
\pgfkeys{/pgfplots/ytick scale label code/.code={#1}}},
/pgfplots/scaled y ticks/.belongs to family=/pgfplots/tick,
/pgfplots/scaled y ticks=true,
/pgfplots/scaled z ticks/.code={\pgfplots@scaled@ticks@setargs{z}{#1}},
/pgfplots/scaled z ticks/false/.code= {\def\pgfplots@scaled@ticks@z@choice{0}},
/pgfplots/scaled z ticks/true/.code= {\def\pgfplots@scaled@ticks@z@choice{1}},
/pgfplots/scaled z ticks/base 10/.code= {\def\pgfplots@scaled@ticks@z@choice{2}\def\pgfplots@scaled@ticks@z@arg{#1}},
/pgfplots/scaled z ticks/real/.code= {%
\def\pgfplots@scaled@ticks@z@choice{3}\def\pgfplots@scaled@ticks@z@arg{#1}%
\pgfkeys{/pgfplots/ztick scale label code/.code={$\pgfkeysvalueof{/pgfplots/tick scale binop} \pgfmathprintnumber{#1}$}}},
/pgfplots/scaled z ticks/manual/.code 2 args= {%
\def\pgfplots@scaled@ticks@z@choice{4}\def\pgfplots@scaled@ticks@z@arg##1{#2}%
\pgfkeys{/pgfplots/ztick scale label code/.code={#1}}},
/pgfplots/scaled z ticks/.belongs to family=/pgfplots/tick,
/pgfplots/scaled z ticks=true,
/pgfplots/scaled ticks/.style={%
/pgfplots/scaled x ticks=#1,
/pgfplots/scaled y ticks=#1,
/pgfplots/scaled z ticks=#1
},
/pgfplots/scale ticks above exponent/.store in= \pgfplots@scale@ticks@above@exponent,
/pgfplots/scale ticks above exponent/.belongs to family=/pgfplots/tick,
/pgfplots/scale ticks above exponent=3,
/pgfplots/scale ticks below exponent/.store in= \pgfplots@scale@ticks@below@exponent,
/pgfplots/scale ticks below exponent/.belongs to family=/pgfplots/tick,
/pgfplots/scale ticks below exponent=-1,
/pgfplots/subtickwidth/.store in= \pgfplots@subtickwidth,
/pgfplots/subtickwidth/.belongs to family=/pgfplots/tick,
/pgfplots/subtickwidth=0.1cm,
/pgfplots/tickwidth/.store in= \pgfplots@tickwidth,
/pgfplots/tickwidth/.belongs to family=/pgfplots/tick,
/pgfplots/tickwidth=0.15cm,
/pgfplots/minor x tick num/.initial=0,
/pgfplots/minor x tick num/.belongs to family=/pgfplots/tick,
/pgfplots/minor y tick num/.initial=0,
/pgfplots/minor y tick num/.belongs to family=/pgfplots/tick,
/pgfplots/minor z tick num/.initial=0,
/pgfplots/minor z tick num/.belongs to family=/pgfplots/tick,
/pgfplots/minor tick num/.style={
/pgfplots/minor x tick num=#1,
/pgfplots/minor y tick num=#1,
/pgfplots/minor z tick num=#1,
},
/pgfplots/minor tick num/.belongs to family=/pgfplots/tick,
/pgfplots/minor tick length/.estore in=\pgfplots@subtickwidth,
/pgfplots/minor tick length/.belongs to family=/pgfplots/tick,
/pgfplots/major tick length/.estore in=\pgfplots@tickwidth,
/pgfplots/major tick length/.belongs to family=/pgfplots/tick,
/pgfplots/max space between ticks/.estore in=\axisdefaulttickwidth,
/pgfplots/max space between ticks/.belongs to family=/pgfplots/tick,
/pgfplots/max space between ticks=35,% the maximum space between adjacent ticks (in pt, but don't specify the unit 'pt')
/pgfplots/try min ticks/.estore in= \axisdefaulttryminticks,
/pgfplots/try min ticks/.belongs to family=/pgfplots/tick,
/pgfplots/try min ticks=4,
/pgfplots/try min ticks log/.estore in= \pgfplots@default@try@minticks@log,
/pgfplots/try min ticks log/.belongs to family=/pgfplots/tick,
/pgfplots/try min ticks log=3,
/pgfplots/log basis x/.initial=,
/pgfplots/log basis y/.initial=,
/pgfplots/log basis z/.initial=,
/pgfplots/log base x/.style={log basis x={#1}},%
/pgfplots/log base y/.style={log basis y={#1}},%
/pgfplots/log base z/.style={log basis z={#1}},%
/pgfplots/log plot exponent style/.style={/pgf/number format/fixed,/pgf/number format/precision=2},
/pgfplots/log plot exponent style/.belongs to family=/pgfplots/tick,
/pgfplots/log identify minor tick positions/.is if=pgfplots@identify@log@minor@tick@pos,
/pgfplots/log identify minor tick positions/.belongs to family=/pgfplots/tick,
/pgfplots/log identify minor tick positions=false,
/pgfplots/log number format code/.code={%
\begingroup
\pgfmathlogtologten@{#1}%
\ifpgfplots@identify@log@minor@tick@pos
\expandafter\pgfplots@is@log@tick@a@minor@tick@pos\pgfmathresult\relax%
\else
\pgfplots@log@tick@isminor@tick@posfalse
\fi
\ifpgfplots@log@tick@isminor@tick@pos
\pgfmathprintnumber[sci]{\pgfmathresult}%
\else
\pgfkeysalso{/pgfplots/log plot exponent style,/pgfplots/log base 10 number format code=\pgfmathresult}%
\fi
\endgroup
},
/pgfplots/log number format code/.belongs to family=/pgfplots/tick,
/pgfplots/log base 10 number format code/.code={{\pgfplots@invoke@pgfkeyscode{/pgfplots/log number format basis/.@cmd}{{10}{#1}}}},
/pgfplots/log base 10 number format code/.belongs to family=/pgfplots/tick,
% #1 = basis
% #2 = exponent
/pgfplots/log number format basis/.code 2 args={$#1^{\pgfmathprintnumber{#2}}$},
% takes #1 = [xyz]:
/pgfplots/log basis ticks/.style={%
/pgfplots/every #1 tick label/.append style={%
/pgfplots/log number format code/.code={%
\begingroup
\pgfkeysalso{/pgfplots/log plot exponent style}%
\pgfplots@invoke@pgfkeyscode{/pgfplots/log number format basis/.@cmd}{{\pgfkeysvalueof{/pgfplots/log basis #1}}{####1}}%
\endgroup
}%
}%
},
% sets \pgfplots@[xy]tickposnum to
/pgfplots/xtick pos/.is choice,
/pgfplots/xtick pos/.belongs to family=/pgfplots/tick,
/pgfplots/xtick pos/left/.code ={\def\pgfplots@xtickposnum{1}},
/pgfplots/xtick pos/left/.belongs to family=/pgfplots/tick,
/pgfplots/xtick pos/right/.code ={\def\pgfplots@xtickposnum{3}},
/pgfplots/xtick pos/right/.belongs to family=/pgfplots/tick,
/pgfplots/xtick pos/both/.code ={\def\pgfplots@xtickposnum{0}},
/pgfplots/xtick pos/both/.belongs to family=/pgfplots/tick,
/pgfplots/xtick pos=both,
/pgfplots/ytick pos/.is choice,
/pgfplots/ytick pos/.belongs to family=/pgfplots/tick,
/pgfplots/ytick pos/left/.code ={\def\pgfplots@ytickposnum{1}},
/pgfplots/ytick pos/left/.belongs to family=/pgfplots/tick,
/pgfplots/ytick pos/right/.code ={\def\pgfplots@ytickposnum{3}},
/pgfplots/ytick pos/right/.belongs to family=/pgfplots/tick,
/pgfplots/ytick pos/both/.code ={\def\pgfplots@ytickposnum{0}},
/pgfplots/ytick pos/both/.belongs to family=/pgfplots/tick,
/pgfplots/ytick pos/top/.style={/pgfplots/ytick pos/right},
/pgfplots/ytick pos/bottom/.style={/pgfplots/ytick pos/left},
/pgfplots/ytick pos=both,
/pgfplots/ztick pos/.is choice,
/pgfplots/ztick pos/.belongs to family=/pgfplots/tick,
/pgfplots/ztick pos/left/.code ={\def\pgfplots@ztickposnum{1}},
/pgfplots/ztick pos/left/.belongs to family=/pgfplots/tick,
/pgfplots/ztick pos/right/.code ={\def\pgfplots@ztickposnum{3}},
/pgfplots/ztick pos/right/.belongs to family=/pgfplots/tick,
/pgfplots/ztick pos/both/.code ={\def\pgfplots@ztickposnum{0}},
/pgfplots/ztick pos/both/.belongs to family=/pgfplots/tick,
/pgfplots/ztick pos/top/.style={/pgfplots/ztick pos/right},
/pgfplots/ztick pos/bottom/.style={/pgfplots/ztick pos/left},
/pgfplots/ztick pos=both,
/pgfplots/tickpos/.style={
/pgfplots/xtick pos={#1},
/pgfplots/ytick pos={#1},
/pgfplots/ztick pos={#1}
},
/pgfplots/tickpos/.belongs to family=/pgfplots/tick,
/pgfplots/tick pos/.style={/pgfplots/tickpos={#1}},
% sets the tick LABEL position, \pgfplots@[xy]ticklabel@pos
% to one of
% lower (alias left alias bottom) : l
% upper (alias right alias top) : u
% default: uses one matches 'tick pos'
/pgfplots/xticklabel pos/.code={\pgfplots@setkey@ticklabelpos{x}{#1}},
/pgfplots/xticklabel pos/.belongs to family=/pgfplots/tick,
/pgfplots/xticklabel pos=default,
/pgfplots/yticklabel pos/.code={\pgfplots@setkey@ticklabelpos{y}{#1}},
/pgfplots/yticklabel pos/.belongs to family=/pgfplots/tick,
/pgfplots/yticklabel pos=default,
/pgfplots/zticklabel pos/.code={\pgfplots@setkey@ticklabelpos{z}{#1}},
/pgfplots/zticklabel pos/.belongs to family=/pgfplots/tick,
/pgfplots/zticklabel pos=default,
/pgfplots/ticklabelpos/.style={/pgfplots/ticklabel pos={#1}},
/pgfplots/ticklabel pos/.style={
/pgfplots/xticklabel pos={#1},
/pgfplots/yticklabel pos={#1},
/pgfplots/zticklabel pos={#1},
},
% This feature is more or less deprecated.
% The choice 'auto' should always use 'near ticklabel'.
%
% Choices are
% 'auto' (value 0),
% 'near ticklabel' (value 1),
% 'tikz' (value 2)
% with values stored in \pgfplots@ticklabel@anchor@[xyz]
/pgfplots/xticklabel anchor/.code={\pgfplots@setticklabel@anchor@for x{#1}},
/pgfplots/xticklabel anchor/.belongs to family=/pgfplots/tick,
/pgfplots/yticklabel anchor/.code={\pgfplots@setticklabel@anchor@for y{#1}},
/pgfplots/yticklabel anchor/.belongs to family=/pgfplots/tick,
/pgfplots/zticklabel anchor/.code={\pgfplots@setticklabel@anchor@for z{#1}},
/pgfplots/zticklabel anchor/.belongs to family=/pgfplots/tick,
/pgfplots/ticklabel anchor/.style={
/pgfplots/xticklabel anchor={#1},
/pgfplots/yticklabel anchor={#1},
/pgfplots/zticklabel anchor={#1}
},
/pgfplots/ticklabel anchor=auto,
/pgfplots/xticklabel shift/.initial=,
/pgfplots/yticklabel shift/.initial=,
/pgfplots/zticklabel shift/.initial=,
/pgfplots/ticklabel shift/.style={
/pgfplots/xticklabel shift={#1},
/pgfplots/yticklabel shift={#1},
/pgfplots/zticklabel shift={#1}
},%
% sets \pgfplots@{x,y}tickalignnum to
% inside=0
% outside=1
% center=2
/pgfplots/xtick align/.is choice,
/pgfplots/xtick align/.belongs to family=/pgfplots/tick,
/pgfplots/xtick align/inside/.code ={\def\pgfplots@xtickalignnum{0}},
/pgfplots/xtick align/inside/.belongs to family=/pgfplots/tick,
/pgfplots/xtick align/outside/.code ={\def\pgfplots@xtickalignnum{1}},
/pgfplots/xtick align/outside/.belongs to family=/pgfplots/tick,
/pgfplots/xtick align/center/.code ={\def\pgfplots@xtickalignnum{2}},
/pgfplots/xtick align/center/.belongs to family=/pgfplots/tick,
/pgfplots/xtick align=inside,
/pgfplots/ytick align/.is choice,
/pgfplots/ytick align/.belongs to family=/pgfplots/tick,
/pgfplots/ytick align/inside/.code ={\def\pgfplots@ytickalignnum{0}},
/pgfplots/ytick align/inside/.belongs to family=/pgfplots/tick,
/pgfplots/ytick align/outside/.code ={\def\pgfplots@ytickalignnum{1}},
/pgfplots/ytick align/outside/.belongs to family=/pgfplots/tick,
/pgfplots/ytick align/center/.code ={\def\pgfplots@ytickalignnum{2}},
/pgfplots/ytick align/center/.belongs to family=/pgfplots/tick,
/pgfplots/ytick align=inside,
/pgfplots/ztick align/.is choice,
/pgfplots/ztick align/.belongs to family=/pgfplots/tick,
/pgfplots/ztick align/inside/.code ={\def\pgfplots@ztickalignnum{0}},
/pgfplots/ztick align/inside/.belongs to family=/pgfplots/tick,
/pgfplots/ztick align/outside/.code ={\def\pgfplots@ztickalignnum{1}},
/pgfplots/ztick align/outside/.belongs to family=/pgfplots/tick,
/pgfplots/ztick align/center/.code ={\def\pgfplots@ztickalignnum{2}},
/pgfplots/ztick align/center/.belongs to family=/pgfplots/tick,
/pgfplots/ztick align=inside,
/pgfplots/tick align/.belongs to family=/pgfplots/tick,
/pgfplots/tick align/.style={%
/pgfplots/xtick align=#1,
/pgfplots/ytick align=#1,
/pgfplots/ztick align=#1,
},%
% 'axis' options:
/pgfplots/anchor/.belongs to family=/pgfplots,
/pgfplots/anchor/.store in= \pgfplots@anchorname,
/pgfplots/anchor=south west,
% tick options:
/pgfplots/ticks/.is choice,
/pgfplots/ticks/.belongs to family=/pgfplots/tick,
/pgfplots/ticks/none/.belongs to family=/pgfplots/tick,
/pgfplots/ticks/none/.code={%
\pgfplots@xminorticksfalse
\pgfplots@yminorticksfalse
\pgfplots@zminorticksfalse
\pgfplots@xmajorticksfalse
\pgfplots@ymajorticksfalse
\pgfplots@zmajorticksfalse
},
/pgfplots/ticks/major/.belongs to family=/pgfplots/tick,
/pgfplots/ticks/major/.code={%
\pgfplots@xminorticksfalse
\pgfplots@yminorticksfalse
\pgfplots@zminorticksfalse
\pgfplots@xmajortickstrue
\pgfplots@ymajortickstrue
\pgfplots@zmajortickstrue
},
/pgfplots/ticks/minor/.belongs to family=/pgfplots/tick,
/pgfplots/ticks/minor/.code={%
\pgfplots@xminortickstrue
\pgfplots@yminortickstrue
\pgfplots@zminortickstrue
\pgfplots@xmajorticksfalse
\pgfplots@ymajorticksfalse
\pgfplots@zmajorticksfalse
},
/pgfplots/ticks/both/.belongs to family=/pgfplots/tick,
/pgfplots/ticks/both/.code={%
\pgfplots@xminortickstrue
\pgfplots@yminortickstrue
\pgfplots@zminortickstrue
\pgfplots@xmajortickstrue
\pgfplots@ymajortickstrue
\pgfplots@zmajortickstrue
},
/pgfplots/ticks=both,
/pgfplots/grid/.is choice,
/pgfplots/grid/.belongs to family=/pgfplots/tick,
/pgfplots/grid/none/.belongs to family=/pgfplots/tick,
/pgfplots/grid/none/.code={%
\pgfplots@xminorgridsfalse
\pgfplots@yminorgridsfalse
\pgfplots@zminorgridsfalse
\pgfplots@xmajorgridsfalse
\pgfplots@ymajorgridsfalse
\pgfplots@zmajorgridsfalse
},
/pgfplots/grid/major/.belongs to family=/pgfplots/tick,
/pgfplots/grid/major/.code={%
\pgfplots@xminorgridsfalse
\pgfplots@yminorgridsfalse
\pgfplots@zminorgridsfalse
\pgfplots@xmajorgridstrue
\pgfplots@ymajorgridstrue
\pgfplots@zmajorgridstrue
},
/pgfplots/grid/minor/.belongs to family=/pgfplots/tick,
/pgfplots/grid/minor/.code={%
\pgfplots@xminorgridstrue
\pgfplots@yminorgridstrue
\pgfplots@zminorgridstrue
\pgfplots@xmajorgridsfalse
\pgfplots@ymajorgridsfalse
\pgfplots@zmajorgridsfalse
},
/pgfplots/grid/both/.belongs to family=/pgfplots/tick,
/pgfplots/grid/both/.code={%
\pgfplots@xminorgridstrue
\pgfplots@yminorgridstrue
\pgfplots@zminorgridstrue
\pgfplots@xmajorgridstrue
\pgfplots@ymajorgridstrue
\pgfplots@zmajorgridstrue
},
/pgfplots/grid=none,
/pgfplots/grid/.default=major,
/pgfplots/xminorticks/.is if=pgfplots@xminorticks,
/pgfplots/xminorticks/.default=true,
/pgfplots/xminorticks/.belongs to family=/pgfplots/tick,
/pgfplots/xmajorticks/.is if=pgfplots@xmajorticks,
/pgfplots/xmajorticks/.default=true,
/pgfplots/xmajorticks/.belongs to family=/pgfplots/tick,
/pgfplots/yminorticks/.is if=pgfplots@yminorticks,
/pgfplots/yminorticks/.default=true,
/pgfplots/yminorticks/.belongs to family=/pgfplots/tick,
/pgfplots/ymajorticks/.is if=pgfplots@ymajorticks,
/pgfplots/ymajorticks/.default=true,
/pgfplots/ymajorticks/.belongs to family=/pgfplots/tick,
/pgfplots/zminorticks/.is if=pgfplots@zminorticks,
/pgfplots/zminorticks/.default=true,
/pgfplots/zminorticks/.belongs to family=/pgfplots/tick,
/pgfplots/zmajorticks/.is if=pgfplots@zmajorticks,
/pgfplots/zmajorticks/.default=true,
/pgfplots/zmajorticks/.belongs to family=/pgfplots/tick,
/pgfplots/xminorgrids/.is if=pgfplots@xminorgrids,
/pgfplots/xminorgrids/.default=true,
/pgfplots/xminorgrids/.belongs to family=/pgfplots/tick,
/pgfplots/xmajorgrids/.is if=pgfplots@xmajorgrids,
/pgfplots/xmajorgrids/.default=true,
/pgfplots/xmajorgrids/.belongs to family=/pgfplots/tick,
/pgfplots/yminorgrids/.is if=pgfplots@yminorgrids,
/pgfplots/yminorgrids/.default=true,
/pgfplots/yminorgrids/.belongs to family=/pgfplots/tick,
/pgfplots/ymajorgrids/.is if=pgfplots@ymajorgrids,
/pgfplots/ymajorgrids/.default=true,
/pgfplots/ymajorgrids/.belongs to family=/pgfplots/tick,
/pgfplots/zminorgrids/.is if=pgfplots@zminorgrids,
/pgfplots/zminorgrids/.default=true,
/pgfplots/zminorgrids/.belongs to family=/pgfplots/tick,
/pgfplots/zmajorgrids/.is if=pgfplots@zmajorgrids,
/pgfplots/zmajorgrids/.default=true,
/pgfplots/zmajorgrids/.belongs to family=/pgfplots/tick,
% legend options:
/pgfplots/legend entries/.initial={},
/pgfplots/legend entries/.belongs to family=/pgfplots/legend,
/pgfplots/legend pos/.is choice,
/pgfplots/legend pos/south west/.style={/pgfplots/legend style={at={(0.03,0.03)},anchor=south west}},
/pgfplots/legend pos/south east/.style={/pgfplots/legend style={at={(0.97,0.03)},anchor=south east}},
/pgfplots/legend pos/north west/.style={/pgfplots/legend style={at={(0.03,0.97)},anchor=north west}},
/pgfplots/legend pos/north east/.style={/pgfplots/legend style={at={(0.97,0.97)},anchor=north east}},
/pgfplots/legend pos/outer north east/.style={/pgfplots/legend style={at={(1.03,1)},anchor=north west}},
/pgfplots/legend columns/.store in=\pgfplots@legend@columns,
/pgfplots/legend columns/.belongs to family=/pgfplots/legend,
/pgfplots/legend columns=1,
/pgfplots/legend plot pos/.is choice,
/pgfplots/legend plot pos/.belongs to family=/pgfplots/legend,
/pgfplots/legend plot pos/left/.code= {\def\pgfplots@legend@plot@pos{0}},
/pgfplots/legend plot pos/left/.belongs to family=/pgfplots/legend,
/pgfplots/legend plot pos/right/.code= {\def\pgfplots@legend@plot@pos{1}},
/pgfplots/legend plot pos/right/.belongs to family=/pgfplots/legend,
/pgfplots/legend plot pos/none/.code= {\def\pgfplots@legend@plot@pos{2}},
/pgfplots/legend plot pos/none/.belongs to family=/pgfplots/legend,
/pgfplots/legend plot pos=left,
/pgfplots/every legend image post/.code={},%
/pgfplots/line legend/.style={%
/pgfplots/legend image code/.code={%
\draw[mark repeat=2,mark phase=2,##1]
plot coordinates {
(0cm,0cm)
(0.3cm,0cm)
(0.6cm,0cm)%
};%
}%
},
/pgfplots/line legend,
/pgfplots/legend image code/.belongs to family=/pgfplots/legend,
/pgfplots/reverse legend/.is if=pgfplots@reverse@legend,
/pgfplots/reverse legend/.default=true,
% axis description options:
/pgfplots/title/.initial=,
/pgfplots/xlabel/.initial=,
/pgfplots/ylabel/.initial=,
/pgfplots/zlabel/.initial=,
/pgfplots/xlabel shift/.initial=0pt,
/pgfplots/ylabel shift/.initial=0pt,
/pgfplots/zlabel shift/.initial=0pt,
/pgfplots/label shift/.style={%
/pgfplots/xlabel shift={#1},
/pgfplots/ylabel shift={#1},
/pgfplots/zlabel shift={#1},
},%
/pgfplots/before end axis/.code=,
/pgfplots/after end axis/.code=,
/pgfplots/extra description/.code=,
% axis options:
/pgfplots/at/.code={%
\pgfplots@assert@tikzinternal@exists{tikz@scan@one@point}%
\tikz@scan@one@point\pgfplots@set@at#1},
/pgfplots/at/.belongs to family=/pgfplots,
/pgfplots/clip limits/.is if=pgfplots@clip@limits,
/pgfplots/clip limits/.default=true,
/pgfplots/clip limits=true,
/pgfplots/clip limits/.belongs to family=/pgfplots,
/pgfplots/clip/.is if=pgfplots@clip,
% will be used if it exists:
%/pgfplots/axis background/.style={},
/pgfplots/axis equal/.is if=pgfplots@axis@equal,
/pgfplots/axis equal/.default=true,
/pgfplots/axis equal image/.is if=pgfplots@axis@equal@image,
/pgfplots/axis equal image/.default=true,
/pgfplots/xmin/.belongs to family=/pgfplots,
/pgfplots/xmin/.initial=,
/pgfplots/xmax/.belongs to family=/pgfplots,
/pgfplots/xmax/.initial=,
/pgfplots/ymin/.belongs to family=/pgfplots,
/pgfplots/ymin/.initial=,
/pgfplots/ymax/.belongs to family=/pgfplots,
/pgfplots/ymax/.initial=,
/pgfplots/zmin/.belongs to family=/pgfplots,
/pgfplots/zmin/.initial=,
/pgfplots/zmax/.belongs to family=/pgfplots,
/pgfplots/zmax/.initial=,
/pgfplots/xtickmin/.belongs to family=/pgfplots,
/pgfplots/xtickmin/.initial=,
/pgfplots/xtickmax/.belongs to family=/pgfplots,
/pgfplots/xtickmax/.initial=,
/pgfplots/ytickmin/.belongs to family=/pgfplots,
/pgfplots/ytickmin/.initial=,
/pgfplots/ytickmax/.belongs to family=/pgfplots,
/pgfplots/ytickmax/.initial=,
/pgfplots/ztickmin/.belongs to family=/pgfplots,
/pgfplots/ztickmin/.initial=,
/pgfplots/ztickmax/.belongs to family=/pgfplots,
/pgfplots/ztickmax/.initial=,
/pgfplots/stack plots/.is choice,
/pgfplots/stack plots/.belongs to family=/pgfplots,
/pgfplots/stack plots/x/.code={\def\pgfplots@stacked@dir{x}\pgfplots@stackedmodetrue},
/pgfplots/stack plots/x/.belongs to family=/pgfplots,
/pgfplots/stack plots/y/.code={\def\pgfplots@stacked@dir{y}\pgfplots@stackedmodetrue},
/pgfplots/stack plots/y/.belongs to family=/pgfplots,
/pgfplots/stack plots/z/.code={\def\pgfplots@stacked@dir{z}\pgfplots@stackedmodetrue},
/pgfplots/stack plots/z/.belongs to family=/pgfplots,
/pgfplots/stack plots/false/.code={\pgfplots@stackedmodefalse},
/pgfplots/stack plots/false/.belongs to family=/pgfplots,
/pgfplots/stack plots=false,
/pgfplots/reverse stacked plots/.is if=pgfplots@stacked@reverse,
/pgfplots/reverse stacked plots/.belongs to family=/pgfplots,
/pgfplots/reverse stacked plots/.default=true,
/pgfplots/reverse stacked plots=true,
/pgfplots/stack dir/.is choice,
/pgfplots/stack dir/.belongs to family=/pgfplots,
/pgfplots/stack dir/plus/.code={\pgfplots@stacked@plustrue},
/pgfplots/stack dir/plus/.belongs to family=/pgfplots,
/pgfplots/stack dir/minus/.code={\pgfplots@stacked@plusfalse},
/pgfplots/stack dir/minus/.belongs to family=/pgfplots,
/pgfplots/stack dir=plus,
/pgfplots/filter discard warning/.is if=pgfplots@warn@for@filter@discards,
/pgfplots/filter discard warning=true,
/pgfplots/x filter/.code={},
/pgfplots/x filter/.belongs to family=/pgfplots,
/pgfplots/y filter/.code={},
/pgfplots/y filter/.belongs to family=/pgfplots,
/pgfplots/z filter/.code={},
/pgfplots/z filter/.belongs to family=/pgfplots,
/pgfplots/filter point/.code=,
/pgfplots/restrict x to domain/.style={/pgfplots/@restrict to domain={x}{}{#1}},%
/pgfplots/restrict y to domain/.style={/pgfplots/@restrict to domain={y}{}{#1}},%
/pgfplots/restrict z to domain/.style={/pgfplots/@restrict to domain={z}{}{#1}},%
/pgfplots/restrict expr to domain/.style 2 args={/pgfplots/@restrict to domain={x}{#1}{#2}},%
% '#1': the filter to install
% '#2': a mathematical expression (or empty)
% '#3': the interval. must be numeric currently.
/pgfplots/@restrict to domain/.code args={#1#2#3}{%
\edef\pgfplots@loc@TMPa{#3}%
% when invoked, ##1 and ##2 will be floats:
\def\pgfplots@loc@TMPb##1:##2\relax{%
\pgfkeysalso{%
/pgfplots/unbounded coords=jump,%
/pgfplots/#1 filter/.append code={%
\let\pgfplots@restrict@to@domain@orig=\pgfmathresult
\def\pgfplots@restrict@to@domain@tmp{#2}%
\ifx\pgfplots@restrict@to@domain@tmp\pgfutil@empty
% we don't have an expression.
\pgfmathfloatparsenumber{\pgfmathresult}%
\else
% evaluate the expression!
\pgfmathparse{#2}%
\fi
\let\pgfplots@restrict@to@domain@tmp=\pgfmathresult
\pgfmathfloatlessthan@{\pgfplots@restrict@to@domain@tmp}{##1}% ##1 is the lower argument
\ifpgfmathfloatcomparison
\def\pgfmathresult{inf}%
\else
\pgfmathfloatgreaterthan@{\pgfplots@restrict@to@domain@tmp}{##2}%
\ifpgfmathfloatcomparison
\def\pgfmathresult{-inf}%
\else
\let\pgfmathresult=\pgfplots@restrict@to@domain@orig
\fi
\fi
}%
}%
}%
% when invoked, ##1 and ##2 will be the user-supplied args.
\def\pgfplots@loc@TMPc##1:##2\relax{%
\pgfmathfloatparsenumber{##1}%
\let\pgfplots@rangea=\pgfmathresult
\pgfmathfloatparsenumber{##2}%
\edef\pgfplots@loc@TMPc{\pgfplots@rangea:\pgfmathresult}%
\expandafter\pgfplots@loc@TMPb\pgfplots@loc@TMPc\relax
}%
\expandafter\pgfplots@loc@TMPc\pgfplots@loc@TMPa\relax
},%
% -> keeps only the nth point, all other ones will get ''.
/pgfplots/each nth point/.style 2 args={%
/pgfplots/x filter/.append code={%
\ifnum\coordindex=0
\def\c@pgfplots@eachnthpoint@xfilter{0}%
\edef\c@pgfplots@eachnthpoint@xfilter@cmp{#1}%
\else
\pgfplotsutil@advancestringcounter\c@pgfplots@eachnthpoint@xfilter
\ifx\c@pgfplots@eachnthpoint@xfilter@cmp\c@pgfplots@eachnthpoint@xfilter
\def\c@pgfplots@eachnthpoint@xfilter{0}%
\else
\let\pgfmathresult\pgfutil@empty
\fi
\fi
}%
},
/pgfplots/skip coords between index/.style 2 args={%
/pgfplots/x filter/.append code={%
\ifnum\coordindex<#1\relax
\else
\ifnum\coordindex<#2\relax
\let\pgfmathresult=\pgfutil@empty
\fi
\fi}
},
/pgfplots/translate gnuplot/.is if=pgfplots@translategnuplot,
/pgfplots/parametric/var 2d/.initial={\u,\v},
/pgfplots/parametric/var 1d/.initial=\t,
/pgfplots/xfilter/.initial=,% DEPRECATED
/pgfplots/yfilter/.initial=,% DEPRECATED
/pgfplots/zfilter/.initial=,% DEPRECATED
% interpretation:
% if 'samples at'==empty && 'domain' == empty
% use tikz option processing!
% else if 'samples at' == empty
% use 'domain'
% else
% use 'samples at'
/pgfplots/domain/.initial=,% empty -> use value of /tikz/domain! see \pgfplots@validate@plot@domain@arguments
/pgfplots/y domain/.initial=,% means: use the same as 'domain'
/pgfplots/domain y/.style={/pgfplots/y domain={#1}},
/pgfplots/samples at/.initial=,% empty -> use value of /tikz/samples at!
/pgfplots/samples/.initial=,% empty -> use /tikz/samples!
/pgfplots/samples y/.initial=,% empty -> use the same as 'samples'. For use in mesh plots.
/pgfplots/variable/.code={\pgfkeysalso{/tikz/variable={#1}}},
/pgfplots/variable y/.initial=\y,%
% and provide aliases in the '/pgfplots/' tree to avoid
% search path problems just for the following options:
/pgfplots/name/.code={\pgfkeysalso{/tikz/name={#1}}},
/pgfplots/overlay/.code={\pgfkeysalso{/tikz/overlay={#1}}},
/pgfplots/alias/.code={\pgfkeysalso{/tikz/alias={#1}}},
/pgfplots/id/.code={\pgfkeysalso{/tikz/id={#1}}},
/pgfplots/prefix/.code={\pgfkeysalso{/tikz/prefix={#1}}},
/pgfplots/raw gnuplot/.code={\pgfkeysalso{/tikz/raw gnuplot={#1}}},
/pgfplots/parametric/.code={\pgfkeysalso{/tikz/parametric={#1}}},%
%
/pgfplots/width/.initial=,%
/pgfplots/width/.belongs to family=/pgfplots,
/pgfplots/height/.initial=,%
/pgfplots/height/.belongs to family=/pgfplots,
/pgfplots/execute at begin plot/.initial=,
/pgfplots/execute at begin plot@@/.initial=,% an internal variant
/pgfplots/execute at end plot/.initial=,
/pgfplots/execute at end plot@@/.initial=,% an internal variant
/pgfplots/enlarge x limits/.initial=auto,
/pgfplots/enlarge x limits/.default=true,
/pgfplots/enlarge y limits/.initial=auto,
/pgfplots/enlarge y limits/.default=true,
/pgfplots/enlarge z limits/.initial=auto,
/pgfplots/enlarge z limits/.default=true,
/pgfplots/enlargelimits/.style={%
/pgfplots/enlarge x limits=#1,%
/pgfplots/enlarge y limits=#1,%
/pgfplots/enlarge z limits=#1,%
},%
/pgfplots/enlargelimits/.default=true,
/pgfplots/x/.initial=,% is implicitly set by 'width' and/or '\axisdefaultwidth'
/pgfplots/x/.belongs to family=/pgfplots,
/pgfplots/y/.initial=,% is implicitly set by 'width' and/or '\axisdefaultwidth'
/pgfplots/y/.belongs to family=/pgfplots,
/pgfplots/z/.initial=,
/pgfplots/z/.belongs to family=/pgfplots,
/pgfplots/x dir/.code={\pgfplots@setkey@axisdir@for x{#1}},%
/pgfplots/y dir/.code={\pgfplots@setkey@axisdir@for y{#1}},%
/pgfplots/z dir/.code={\pgfplots@setkey@axisdir@for z{#1}},%
/pgfplots/x dir=normal,%
/pgfplots/y dir=normal,%
/pgfplots/z dir=normal,%
/pgfplots/allow reversal of rel axis cs/.is if=pgfplots@allow@reversal@of@rel@axis@cs,%
/pgfplots/allow reversal of rel axis cs/.default=true,%
/pgfplots/allow reversal of rel axis cs=true,%
/pgfplots/plot box ratio/.initial={1}{1}{1},%
/pgfplots/view/az/.initial=25,%
/pgfplots/view/h/.code={\pgfkeyssetvalue{/pgfplots/view/az}{#1}},%
/pgfplots/view/el/.initial=30,%
/pgfplots/view/v/.code={\pgfkeyssetvalue{/pgfplots/view/el}{#1}},%
/pgfplots/view/.style 2 args={%
/pgfplots/view/az={#1},%
/pgfplots/view/el={#2}%
},%
/pgfplots/cycle list/.code={%
\pgfplots@assign@list\autoplotspeclist{#1}%
\expandafter\let\csname pgfp@cyclist@auto@\endcsname=\autoplotspeclist
\pgfkeyssetvalue{/pgfplots/cycle multi list/@dim}{0}% de-activate.
},
/pgfplots/cycle list/.belongs to family=/pgfplots,
/pgfplots/cycle list name/.code={%
\pgfplotsifcyclelistexists{#1}{%
\expandafter\let\expandafter\autoplotspeclist\csname pgfp@cyclist@\string#1@\endcsname
\expandafter\let\csname pgfp@cyclist@auto@\endcsname=\autoplotspeclist
\pgfkeyssetvalue{/pgfplots/cycle multi list/@dim}{0}% de-activate.
}{%
\pgfplots@error{Sorry, there is no such cycle list named \string#1. Maybe you misspelled it?}%
}%
},
/pgfplots/cycle list name/.belongs to family=/pgfplots,
/pgfplots/cycle list name=color,
% accepts arguments of the form
% \nextlist \nextlist ....
% where each list spec is EITHER a cycle list name OR a cycle list
% argument.
/pgfplots/cycle multi list/.code={\pgfplots@cycle@multi@list{#1}},
% #1: list index
% #2: maximum number of elements to use
/pgfplots/cycle multi list/partial sublist/.code 2 args={%
\ifnum#1<\pgfkeysvalueof{/pgfplots/cycle multi list/@dim}
\ifnum#2<\pgfkeysvalueof{/pgfplots/cycle multi list/@totalN#1}
\pgfkeyssetvalue{/pgfplots/cycle multi list/@N#1}{#2}%
\fi
\else
\pgfplots@error{Sorry, the first argument of `cycle multi list/partial sublist=' is no valid list index (should be less than \pgfkeysvalueof{/pgfplots/cycle multi list/@dim}).}%
\fi
},%
/pgfplots/cycle multi list/@dim/.initial=0,
%/pgfplots/cycle multi list/@list0/.style={},
%/pgfplots/cycle multi list/@N0/.initial=0,%
%/pgfplots/cycle multi list/@totalN0/.initial=0,%
/pgfplots/legend style/.belongs to family=/pgfplots/style commands,
/pgfplots/legend style/.code={%
\pgfkeysalso{/pgfplots/every axis legend/.append style={#1}}%
},
/pgfplots/every forget plot/.code={},%
/pgfplots/forget plot style/.style={/pgfplots/every forget plot/.append style={#1}},
/pgfplots/label style/.belongs to family=/pgfplots/style commands,
/pgfplots/label style/.style={%
/pgfplots/every axis x label/.append style={#1},%
/pgfplots/every axis y label/.append style={#1},%
/pgfplots/every axis z label/.append style={#1}%
},%
/pgfplots/x label style/.belongs to family=/pgfplots/style commands,
/pgfplots/x label style/.code={%
\pgfkeysalso{/pgfplots/every axis x label/.append style={#1}}%
},
/pgfplots/y label style/.belongs to family=/pgfplots/style commands,
/pgfplots/y label style/.code={%
\pgfkeysalso{/pgfplots/every axis y label/.append style={#1}}%
},
/pgfplots/z label style/.belongs to family=/pgfplots/style commands,
/pgfplots/z label style/.code={%
\pgfkeysalso{/pgfplots/every axis z label/.append style={#1}}%
},
/pgfplots/title style/.belongs to family=/pgfplots/style commands,
/pgfplots/title style/.code={%
\pgfkeysalso{/pgfplots/every axis title/.append style={#1}}%
},
/pgfplots/tick label style/.belongs to family=/pgfplots/style commands,
/pgfplots/tick label style/.code={%
\pgfkeysalso{/pgfplots/every tick label/.append style={#1}}%
},
/pgfplots/x tick label style/.belongs to family=/pgfplots/style commands,
/pgfplots/x tick label style/.code={%
\pgfkeysalso{/pgfplots/every x tick label/.append style={#1}}%
},
/pgfplots/y tick label style/.belongs to family=/pgfplots/style commands,
/pgfplots/y tick label style/.code={%
\pgfkeysalso{/pgfplots/every y tick label/.append style={#1}}%
},
/pgfplots/z tick label style/.belongs to family=/pgfplots/style commands,
/pgfplots/z tick label style/.code={%
\pgfkeysalso{/pgfplots/every z tick label/.append style={#1}}%
},
/pgfplots/x tick scale label style/.belongs to family=/pgfplots/style commands,
/pgfplots/x tick scale label style/.code={%
\pgfkeysalso{/pgfplots/every x tick scale label/.append style={#1}}%
},
/pgfplots/y tick scale label style/.belongs to family=/pgfplots/style commands,
/pgfplots/y tick scale label style/.code={%
\pgfkeysalso{/pgfplots/every y tick scale label/.append style={#1}}%
},
/pgfplots/z tick scale label style/.belongs to family=/pgfplots/style commands,
/pgfplots/z tick scale label style/.code={%
\pgfkeysalso{/pgfplots/every z tick scale label/.append style={#1}}%
},
/pgfplots/tick style/.belongs to family=/pgfplots/style commands,
/pgfplots/tick style/.code={%
\pgfkeysalso{/pgfplots/every tick/.append style={#1}}%
},
/pgfplots/minor tick style/.belongs to family=/pgfplots/style commands,
/pgfplots/minor tick style/.code={%
\pgfkeysalso{/pgfplots/every minor tick/.append style={#1}}%
},
/pgfplots/major tick style/.belongs to family=/pgfplots/style commands,
/pgfplots/major tick style/.code={%
\pgfkeysalso{/pgfplots/every major tick/.append style={#1}}%
},
/pgfplots/x tick style/.belongs to family=/pgfplots/style commands,
/pgfplots/x tick style/.code={%
\pgfkeysalso{/pgfplots/every x tick/.append style={#1}}%
},
/pgfplots/minor x tick style/.belongs to family=/pgfplots/style commands,
/pgfplots/minor x tick style/.code={%
\pgfkeysalso{/pgfplots/every minor x tick/.append style={#1}}%
},
/pgfplots/major x tick style/.belongs to family=/pgfplots/style commands,
/pgfplots/major x tick style/.code={%
\pgfkeysalso{/pgfplots/every major x tick/.append style={#1}}%
},
/pgfplots/y tick style/.belongs to family=/pgfplots/style commands,
/pgfplots/y tick style/.code={%
\pgfkeysalso{/pgfplots/every y tick/.append style={#1}}%
},
/pgfplots/minor y tick style/.belongs to family=/pgfplots/style commands,
/pgfplots/minor y tick style/.code={%
\pgfkeysalso{/pgfplots/every minor y tick/.append style={#1}}%
},
/pgfplots/major y tick style/.belongs to family=/pgfplots/style commands,
/pgfplots/major y tick style/.code={%
\pgfkeysalso{/pgfplots/every major y tick/.append style={#1}}%
},
/pgfplots/z tick style/.belongs to family=/pgfplots/style commands,
/pgfplots/z tick style/.code={%
\pgfkeysalso{/pgfplots/every z tick/.append style={#1}}%
},
/pgfplots/minor z tick style/.belongs to family=/pgfplots/style commands,
/pgfplots/minor z tick style/.code={%
\pgfkeysalso{/pgfplots/every minor z tick/.append style={#1}}%
},
/pgfplots/major z tick style/.belongs to family=/pgfplots/style commands,
/pgfplots/major z tick style/.code={%
\pgfkeysalso{/pgfplots/every major z tick/.append style={#1}}%
},
/pgfplots/grid style/.belongs to family=/pgfplots/style commands,
/pgfplots/grid style/.code={%
\pgfkeysalso{/pgfplots/every axis grid/.append style={#1}}%
},
/pgfplots/minor grid style/.belongs to family=/pgfplots/style commands,
/pgfplots/minor grid style/.code={%
\pgfkeysalso{/pgfplots/every minor grid/.append style={#1}}%
},
/pgfplots/major grid style/.belongs to family=/pgfplots/style commands,
/pgfplots/major grid style/.code={%
\pgfkeysalso{/pgfplots/every major grid/.append style={#1}}%
},
/pgfplots/x grid style/.belongs to family=/pgfplots/style commands,
/pgfplots/x grid style/.code={%
\pgfkeysalso{/pgfplots/every axis x grid/.append style={#1}}%
},
/pgfplots/minor x grid style/.belongs to family=/pgfplots/style commands,
/pgfplots/minor x grid style/.code={%
\pgfkeysalso{/pgfplots/every minor x grid/.append style={#1}}%
},
/pgfplots/major x grid style/.belongs to family=/pgfplots/style commands,
/pgfplots/major x grid style/.code={%
\pgfkeysalso{/pgfplots/every major x grid/.append style={#1}}%
},
/pgfplots/y grid style/.belongs to family=/pgfplots/style commands,
/pgfplots/y grid style/.code={%
\pgfkeysalso{/pgfplots/every axis y grid/.append style={#1}}%
},
/pgfplots/minor y grid style/.belongs to family=/pgfplots/style commands,
/pgfplots/minor y grid style/.code={%
\pgfkeysalso{/pgfplots/every minor y grid/.append style={#1}}%
},
/pgfplots/major y grid style/.belongs to family=/pgfplots/style commands,
/pgfplots/major y grid style/.code={%
\pgfkeysalso{/pgfplots/every major y grid/.append style={#1}}%
},
/pgfplots/y grid style/.belongs to family=/pgfplots/style commands,
/pgfplots/y grid style/.code={%
\pgfkeysalso{/pgfplots/every axis z grid/.append style={#1}}%
},
/pgfplots/minor z grid style/.belongs to family=/pgfplots/style commands,
/pgfplots/minor z grid style/.code={%
\pgfkeysalso{/pgfplots/every minor z grid/.append style={#1}}%
},
/pgfplots/major z grid style/.belongs to family=/pgfplots/style commands,
/pgfplots/major z grid style/.code={%
\pgfkeysalso{/pgfplots/every major z grid/.append style={#1}}%
},
/pgfplots/disablelogfilter x/.is if=pgfplots@disablelogfilter@x,
/pgfplots/disablelogfilter x/.default=true,
/pgfplots/disablelogfilter y/.is if=pgfplots@disablelogfilter@y,
/pgfplots/disablelogfilter y/.default=true,
/pgfplots/disablelogfilter z/.is if=pgfplots@disablelogfilter@z,
/pgfplots/disablelogfilter z/.default=true,
/pgfplots/disablelogfilter/.style={
/pgfplots/disablelogfilter x=#1,
/pgfplots/disablelogfilter y=#1,
/pgfplots/disablelogfilter z=#1,
},
/pgfplots/disabledatascaling/.is if=pgfplots@disabledatascaling,
/pgfplots/disabledatascaling/.default=true,
/pgfplots/disabledatascaling/.belongs to family=/pgfplots,
/pgfplots/disabledatascaling=false,
/pgfplots/hide x axis/.is if=pgfplots@hide@x,
/pgfplots/hide x axis/.default=true,
/pgfplots/hide x axis=false,
/pgfplots/hide y axis/.is if=pgfplots@hide@y,
/pgfplots/hide y axis/.default=true,
/pgfplots/hide y axis=false,
/pgfplots/hide z axis/.is if=pgfplots@hide@z,
/pgfplots/hide z axis/.default=true,
/pgfplots/hide z axis=false,
/pgfplots/hide axis/.style={%
/pgfplots/hide x axis=#1,
/pgfplots/hide y axis=#1,
/pgfplots/hide z axis=#1,
},
/pgfplots/hide axis/.default=true,
/pgfplots/every non boxed x axis/.style={%
xtick align=center,
enlarge x limits=false,
x axis line style={-stealth}
},
/pgfplots/every non boxed y axis/.style={%
ytick align=center,
enlarge y limits=false,
y axis line style={-stealth}
},
/pgfplots/every non boxed z axis/.style={%
ztick align=center,
enlarge z limits=false,
z axis line style={-stealth}
},
/pgfplots/every boxed x axis/.style={},
/pgfplots/every boxed y axis/.style={},
/pgfplots/every boxed z axis/.style={},
% /pgfplots/hide axis/.belongs to family=/pgfplots,
% sets \pgfplots@xaxislinesnum to
% box=0
% bottom=1
% middle=2 ( aliased with center )
% top=3
/pgfplots/axis x line*/.is choice,
/pgfplots/axis x line*/box/.code ={\def\pgfplots@xaxislinesnum{0}\def\pgfplots@xtickposnum{0}},
/pgfplots/axis x line*/bottom/.code ={\def\pgfplots@xaxislinesnum{1}\def\pgfplots@xtickposnum{1}\let\pgfplots@xticklabel@pos\pgfutil@empty},
/pgfplots/axis x line*/left/.style={/pgfplots/axis x line*/bottom},
/pgfplots/axis x line*/middle/.code ={\def\pgfplots@xaxislinesnum{2}\def\pgfplots@xtickposnum{2}\let\pgfplots@xticklabel@pos\pgfutil@empty},
/pgfplots/axis x line*/center/.style ={/pgfplots/axis x line*/middle},
/pgfplots/axis x line*/top/.code ={\def\pgfplots@xaxislinesnum{3}\def\pgfplots@xtickposnum{3}\let\pgfplots@xticklabel@pos\pgfutil@empty},
/pgfplots/axis x line*/right/.style={/pgfplots/axis x line*/top},
/pgfplots/axis x line*/none/.code ={\def\pgfplots@xaxislinesnum{4}\def\pgfplots@xtickposnum{4}\let\pgfplots@xticklabel@pos\pgfutil@empty},
/pgfplots/axis x line*=box,
%
/pgfplots/axis x line/.is choice,
/pgfplots/axis x line/box/.style ={
/pgfplots/axis x line*/box,
/pgfplots/every boxed x axis
},
/pgfplots/axis x line/bottom/.style ={
/pgfplots/axis x line*/bottom,
/pgfplots/every non boxed x axis
},
/pgfplots/axis x line/left/.style={/pgfplots/axis x line/bottom},%
/pgfplots/axis x line/middle/.code ={%
\ifnum\pgfplots@yaxislinesnum=3 % if 'axis y line==right' then
\pgfkeysalso{/pgfplots/every axis x label/.style={at={(current axis.left of origin)},anchor=south west}}%
\else
\pgfkeysalso{/pgfplots/every axis x label/.style={at={(current axis.right of origin)},anchor=south east}}%
\fi
\pgfkeysalso{/pgfplots/axis x line*/middle,
/pgfplots/every non boxed x axis}%
},
/pgfplots/axis x line/center/.style ={/pgfplots/axis x line/middle},
/pgfplots/axis x line/right/.style={/pgfplots/axis x line/top},%
/pgfplots/axis x line/top/.code ={
\ifnum\pgfplots@yaxislinesnum=2 % if 'axis y line==center' then
\pgfkeysalso{
/pgfplots/every axis y label/.style={at={(current axis.below origin)},anchor=south west}}%
\fi
\pgfkeysalso{%
/pgfplots/axis x line*/top,
/pgfplots/every axis x label/.style={at={(0.5,1)},anchor=south,yshift=15pt},
/pgfplots/every non boxed x axis}%
},
/pgfplots/axis x line/none/.style ={axis x line*/none,hide x axis},
% sets \pgfplots@yaxislinesnum to
% box=0
% left=1
% center=2 ( aliased with middle )
% right=3
/pgfplots/axis y line*/.is choice,
/pgfplots/axis y line*/box/.code ={\def\pgfplots@yaxislinesnum{0}\def\pgfplots@ytickposnum{0}},
/pgfplots/axis y line*/left/.code ={\def\pgfplots@yaxislinesnum{1}\def\pgfplots@ytickposnum{1}\let\pgfplots@yticklabel@pos\pgfutil@empty},
/pgfplots/axis y line*/center/.code ={\def\pgfplots@yaxislinesnum{2}\def\pgfplots@ytickposnum{2}\let\pgfplots@yticklabel@pos\pgfutil@empty},
/pgfplots/axis y line*/middle/.style ={/pgfplots/axis y line*/center},
/pgfplots/axis y line*/right/.code ={\def\pgfplots@yaxislinesnum{3}\def\pgfplots@ytickposnum{3}\let\pgfplots@yticklabel@pos\pgfutil@empty},
/pgfplots/axis y line*/none/.code ={\def\pgfplots@yaxislinesnum{4}\def\pgfplots@ytickposnum{4}\let\pgfplots@yticklabel@pos\pgfutil@empty},
/pgfplots/axis y line*=box,
%
/pgfplots/axis y line/.is choice,
/pgfplots/axis y line/box/.style ={
/pgfplots/axis y line*/box,
/pgfplots/every boxed y axis
},
/pgfplots/axis y line/left/.style ={
/pgfplots/axis y line*/left,
/pgfplots/every non boxed y axis
},
/pgfplots/axis y line/center/.code ={
\ifnum\pgfplots@xaxislinesnum=3 % if 'axis x line==top' then
\pgfkeysalso{%
/pgfplots/every axis y label/.style={at={(current axis.below origin)},anchor=south west}}%
\else
\pgfkeysalso{%
/pgfplots/every axis y label/.style={at={(current axis.above origin)},anchor=north west}}%
\fi
\pgfkeysalso{%
/pgfplots/axis y line*/center,
/pgfplots/every non boxed y axis}%
},
/pgfplots/axis y line/middle/.style ={/pgfplots/axis y line/center},
/pgfplots/axis y line/right/.code ={%
\ifnum\pgfplots@xaxislinesnum=2
\pgfkeysalso{every axis x label/.style={at={(current axis.left of origin)},anchor=south west}}%
\fi
\pgfkeysalso{
axis y line*/right,
%every axis y label/.style={at={(1,1)},anchor=north west,xshift=15pt},
% FIXME : DEPRECATED !? USE 'near tick' things ....
every axis y label/.style={at={(1,0.5)},xshift=33pt,rotate=90},
/pgfplots/every non boxed y axis
}%
},%
/pgfplots/axis y line/none/.style ={axis y line*/none,hide y axis},
%
% sets \pgfplots@zaxislinesnum to
% box=0
% left=1
% center=2 ( aliased with middle )
% right=3
/pgfplots/axis z line*/.is choice,
/pgfplots/axis z line*/box/.code ={\def\pgfplots@zaxislinesnum{0}\def\pgfplots@ztickposnum{0}},
/pgfplots/axis z line*/left/.code ={\def\pgfplots@zaxislinesnum{1}\def\pgfplots@ztickposnum{1}\let\pgfplots@zticklabel@pos\pgfutil@empty},
/pgfplots/axis z line*/center/.code ={\def\pgfplots@zaxislinesnum{2}\def\pgfplots@ztickposnum{2}\let\pgfplots@zticklabel@pos\pgfutil@empty},
/pgfplots/axis z line*/middle/.style ={/pgfplots/axis z line*/center},
/pgfplots/axis z line*/right/.code ={\def\pgfplots@zaxislinesnum{3}\def\pgfplots@ztickposnum{3}\let\pgfplots@zticklabel@pos\pgfutil@empty},
/pgfplots/axis z line*/none/.code ={\def\pgfplots@zaxislinesnum{4}\def\pgfplots@ztickposnum{4}\let\pgfplots@zticklabel@pos\pgfutil@empty},
/pgfplots/axis z line*=box,
%
/pgfplots/axis z line/.is choice,
/pgfplots/axis z line/box/.style ={
/pgfplots/axis z line*/box,
/pgfplots/every boxed z axis
},
/pgfplots/axis z line/left/.style ={
/pgfplots/axis z line*/left,
/pgfplots/every non boxed z axis
},
/pgfplots/axis z line/center/.code ={
% \ifnum\pgfplots@xaxislinesnum=3 % if 'axis x line==top' then
% \pgfkeysalso{%
% /pgfplots/every axis z label/.style={at={(current axis.below origin)},anchor=south west}}%
% \else
\pgfkeysalso{%
/pgfplots/every axis z label/.style={at={(current axis.above origin)},anchor=north west}}%
% \fi
\pgfkeysalso{%
/pgfplots/axis z line*/center,
/pgfplots/every non boxed z axis}%
},
/pgfplots/axis z line/middle/.style ={/pgfplots/axis z line/center},
/pgfplots/axis z line/right/.code ={%
\ifnum\pgfplots@xaxislinesnum=2
\pgfkeysalso{every axis x label/.style={at={(current axis.left of origin)},anchor=south west}}%
\fi
\pgfkeysalso{
axis z line*/right,
%every axis y label/.style={at={(1,1)},anchor=north west,xshift=15pt},
every axis z label/.style={at={(1,0.5)},xshift=33pt,rotate=90},
/pgfplots/every non boxed z axis
}%
},%
/pgfplots/axis z line/none/.style ={axis z line*/none,hide z axis},
/pgfplots/axis lines/.style={%
axis x line=#1,%
axis y line=#1,%
axis z line=#1%
},
/pgfplots/axis lines*/.style={%
axis x line*=#1,%
axis y line*=#1,%
axis z line*=#1%
},
/pgfplots/3d box/.is choice,
/pgfplots/3d box/background/.code ={\def\pgfplots@threedimbox@choice{0}},%
/pgfplots/3d box/complete/.code ={\def\pgfplots@threedimbox@choice{1}},%
/pgfplots/3d box/complete*/.code ={\def\pgfplots@threedimbox@choice{2}},%
/pgfplots/3d box/.default=complete,%
/pgfplots/3d box/background,%
/pgfplots/every 3d box foreground/.style={},
/pgfplots/3d box foreground style/.style={%
/pgfplots/every 3d box foreground/.append style={#1}%
},
% set \pgfplots@xaxisdiscontnum
% none = 0
% crunch = 1
% open = 2
/pgfplots/axis x discontinuity/.is choice,
/pgfplots/axis x discontinuity/.belongs to family=/pgfplots, %/axis,
/pgfplots/axis x discontinuity/none/.code ={\def\pgfplots@xaxisdiscontnum{0}},
/pgfplots/axis x discontinuity/none/.belongs to family=/pgfplots, %/axis,
/pgfplots/axis x discontinuity/crunch/.code ={\def\pgfplots@xaxisdiscontnum{1}},
/pgfplots/axis x discontinuity/crunch/.belongs to family=/pgfplots, %/axis,
/pgfplots/axis x discontinuity/parallel/.code ={\def\pgfplots@xaxisdiscontnum{2}},
/pgfplots/axis x discontinuity/parallel/.belongs to family=/pgfplots, %/axis,
/pgfplots/axis x discontinuity=none,
% set \pgfplots@yaxisdiscontnum
% none = 0
% crunch = 1
% open = 2
/pgfplots/axis y discontinuity/.is choice,
/pgfplots/axis y discontinuity/.belongs to family=/pgfplots, %/axis,
/pgfplots/axis y discontinuity/none/.code ={\def\pgfplots@yaxisdiscontnum{0}},
/pgfplots/axis y discontinuity/none/.belongs to family=/pgfplots, %/axis,
/pgfplots/axis y discontinuity/crunch/.code ={\def\pgfplots@yaxisdiscontnum{1}},
/pgfplots/axis y discontinuity/crunch/.belongs to family=/pgfplots, %/axis,
/pgfplots/axis y discontinuity/parallel/.code ={\def\pgfplots@yaxisdiscontnum{2}},
/pgfplots/axis y discontinuity/parallel/.belongs to family=/pgfplots, %/axis,
/pgfplots/axis y discontinuity=none,
% set \pgfplots@yaxisdiscontnum
% none = 0
% crunch = 1
% open = 2
/pgfplots/axis z discontinuity/.is choice,
/pgfplots/axis z discontinuity/.belongs to family=/pgfplots, %/axis,
/pgfplots/axis z discontinuity/none/.code ={\def\pgfplots@zaxisdiscontnum{0}},
/pgfplots/axis z discontinuity/none/.belongs to family=/pgfplots, %/axis,
/pgfplots/axis z discontinuity/crunch/.code ={\def\pgfplots@zaxisdiscontnum{1}},
/pgfplots/axis z discontinuity/crunch/.belongs to family=/pgfplots, %/axis,
/pgfplots/axis z discontinuity/parallel/.code ={\def\pgfplots@zaxisdiscontnum{2}},
/pgfplots/axis z discontinuity/parallel/.belongs to family=/pgfplots, %/axis,
/pgfplots/axis z discontinuity=none,
/pgfplots/scale only axis/.is if=pgfplots@scale@only@axis,
/pgfplots/scale only axis/.default=true,
/pgfplots/scale only axis/.belongs to family=/pgfplots,
/pgfplots/scale only axis=false,
% sets \pgfplots@xislinear to
% normal=true
% log=false
/pgfplots/xmode/.is choice,
/pgfplots/xmode/.belongs to family=/pgfplots/scale,
/pgfplots/xmode/normal/.code={\pgfplots@xislineartrue},
/pgfplots/xmode/normal/.belongs to family=/pgfplots/scale,
/pgfplots/xmode/linear/.code={\pgfplots@xislineartrue},
/pgfplots/xmode/linear/.belongs to family=/pgfplots/scale,
/pgfplots/xmode/log/.code={\pgfplots@xislinearfalse},
/pgfplots/xmode/log/.belongs to family=/pgfplots/scale,
/pgfplots/xmode=linear,
/pgfplots/ymode/.is choice,
/pgfplots/ymode/.belongs to family=/pgfplots/scale,
/pgfplots/ymode/normal/.code={\pgfplots@yislineartrue},
/pgfplots/ymode/normal/.belongs to family=/pgfplots/scale,
/pgfplots/ymode/linear/.code={\pgfplots@yislineartrue},
/pgfplots/ymode/linear/.belongs to family=/pgfplots/scale,
/pgfplots/ymode/log/.code={\pgfplots@yislinearfalse},
/pgfplots/ymode/log/.belongs to family=/pgfplots/scale,
/pgfplots/ymode=linear,
/pgfplots/zmode/.is choice,
/pgfplots/zmode/.belongs to family=/pgfplots/scale,
/pgfplots/zmode/normal/.code={\pgfplots@zislineartrue},
/pgfplots/zmode/normal/.belongs to family=/pgfplots/scale,
/pgfplots/zmode/linear/.code={\pgfplots@zislineartrue},
/pgfplots/zmode/linear/.belongs to family=/pgfplots/scale,
/pgfplots/zmode/log/.code={\pgfplots@zislinearfalse},
/pgfplots/zmode/log/.belongs to family=/pgfplots/scale,
/pgfplots/zmode=linear,
/pgfplots/error bars/x fixed/.code= \def\pgfplots@errorbars@xfixed{#1}\def\pgfplots@errorbars@xmode{0},
/pgfplots/error bars/x fixed relative/.code= \def\pgfplots@errorbars@xrel{#1}\def\pgfplots@errorbars@xmode{1},
/pgfplots/error bars/x explicit/.code= \def\pgfplots@errorbars@xmode{2},
/pgfplots/error bars/x explicit relative/.code= \def\pgfplots@errorbars@xmode{3},
/pgfplots/error bars/x fixed relative=0,
/pgfplots/error bars/x fixed=0,
/pgfplots/error bars/y fixed/.code= \def\pgfplots@errorbars@yfixed{#1}\def\pgfplots@errorbars@ymode{0},
/pgfplots/error bars/y fixed relative/.code= \def\pgfplots@errorbars@yrel{#1}\def\pgfplots@errorbars@ymode{1},
/pgfplots/error bars/y explicit/.code= \def\pgfplots@errorbars@ymode{2},
/pgfplots/error bars/y explicit relative/.code= \def\pgfplots@errorbars@ymode{3},
/pgfplots/error bars/y fixed relative=0,
/pgfplots/error bars/y fixed=0,
/pgfplots/error bars/z fixed/.code= \def\pgfplots@errorbars@zfixed{#1}\def\pgfplots@errorbars@zmode{0},
/pgfplots/error bars/z fixed relative/.code= \def\pgfplots@errorbars@zrel{#1}\def\pgfplots@errorbars@zmode{1},
/pgfplots/error bars/z explicit/.code= \def\pgfplots@errorbars@zmode{2},
/pgfplots/error bars/z explicit relative/.code= \def\pgfplots@errorbars@zmode{3},
/pgfplots/error bars/z fixed relative=0,
/pgfplots/error bars/z fixed=0,
/pgfplots/error bars/x dir/.is choice,
/pgfplots/error bars/x dir/none/.code={%
\def\pgfplots@errorbars@xdirection{0}%
\ifnum\pgfplots@errorbars@ydirection=0
\ifnum\pgfplots@errorbars@zdirection=0
\pgfplots@errorbars@enabledfalse
\fi
\fi
},
/pgfplots/error bars/x dir/plus/.code= \def\pgfplots@errorbars@xdirection{1}\pgfplots@errorbars@enabledtrue,
/pgfplots/error bars/x dir/minus/.code= \def\pgfplots@errorbars@xdirection{2}\pgfplots@errorbars@enabledtrue,
/pgfplots/error bars/x dir/both/.code= \def\pgfplots@errorbars@xdirection{3}\pgfplots@errorbars@enabledtrue,
/pgfplots/error bars/x dir=none,
/pgfplots/error bars/y dir/.is choice,
/pgfplots/error bars/y dir/none/.code={%
\def\pgfplots@errorbars@ydirection{0}%
\ifnum\pgfplots@errorbars@xdirection=0
\ifnum\pgfplots@errorbars@zdirection=0
\pgfplots@errorbars@enabledfalse
\fi
\fi
},
/pgfplots/error bars/y dir/plus/.code= \def\pgfplots@errorbars@ydirection{1}\pgfplots@errorbars@enabledtrue,
/pgfplots/error bars/y dir/minus/.code= \def\pgfplots@errorbars@ydirection{2}\pgfplots@errorbars@enabledtrue,
/pgfplots/error bars/y dir/both/.code= \def\pgfplots@errorbars@ydirection{3}\pgfplots@errorbars@enabledtrue,
/pgfplots/error bars/y dir=none,
/pgfplots/error bars/z dir/.is choice,
/pgfplots/error bars/z dir/none/.code={%
\def\pgfplots@errorbars@zdirection{0}%
\ifnum\pgfplots@errorbars@xdirection=0
\ifnum\pgfplots@errorbars@ydirection=0
\pgfplots@errorbars@enabledfalse
\fi
\fi
},
/pgfplots/error bars/z dir/plus/.code= \def\pgfplots@errorbars@zdirection{1}\pgfplots@errorbars@enabledtrue,
/pgfplots/error bars/z dir/minus/.code= \def\pgfplots@errorbars@zdirection{2}\pgfplots@errorbars@enabledtrue,
/pgfplots/error bars/z dir/both/.code= \def\pgfplots@errorbars@zdirection{3}\pgfplots@errorbars@enabledtrue,
/pgfplots/error bars/z dir=none,
/pgfplots/error bars/error mark/.initial={-},
/pgfplots/error bars/error mark options/.initial={rotate=90},
/pgfplots/error bars/error bar style/.code={%
\pgfkeysalso{/pgfplots/every error bar/.append style={#1}}%
},
/pgfplots/every error bar/.style={thin},
/pgfplots/every error bar/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every error bar}},
/pgfplots/error bars/draw error bar/.code 2 args={%
%\message{/pgfplots/error bars/draw error bar: working with '#1' -- '#2'.}%
\pgfkeysgetvalue{/pgfplots/error bars/error mark}{\pgfplotserrorbarsmark}%
\pgfkeysgetvalue{/pgfplots/error bars/error mark options}{\pgfplotserrorbarsmarkopts}%
\draw #1 -- #2 node[pos=1,sloped,allow upside down] {%
\expandafter\tikz\expandafter[\pgfplotserrorbarsmarkopts]{%
\expandafter\pgfuseplotmark\expandafter{\pgfplotserrorbarsmark}%
\pgfusepath{stroke}}%
};
},
/pgfplots/every node near coord/.style={},
% values: 'horizontal', 'vertical' or any tikz alignment command
% like 'left' or 'anchor=south west' or so.
/pgfplots/nodes near coords align/.initial=auto,%
%
% 'nodes near coords='.
% The content is by default \pgfmathprintnumber\pgfplotspointmeta.
%
% Use 'point meta=y' after 'nodes near coords' to typeset the y coordinates
% Use 'point meta=x' to typeset the x coordinates
/pgfplots/nodes near coords/.style={%
/pgfplots/scatter/@pre marker code/.code={},%
/pgfplots/scatter/@post marker code/.code={},%
/pgfplots/nodes near coords*={#1},%
},%
/pgfplots/nodes near coords*/.style={%
/pgfplots/scatter/true*,%
/pgfplots/set point meta if empty=f(x),%
scatter/@post marker code/.append code={%
% determine default alignment:
\pgfkeysgetvalue{/pgfplots/nodes near coords align}{\pgfplots@nodes@near@coords@align}%
\edef\pgfplots@nodes@near@coords@align{\pgfplots@nodes@near@coords@align}%
\def\pgfplots@loc@TMPa{auto}%
\ifx\pgfplots@nodes@near@coords@align\pgfplots@loc@TMPa
\ifx\pgfplotspointmetainputhandler x%
% point meta=x:
\def\pgfplots@nodes@near@coords@align{horizontal}%
\else
\def\pgfplots@nodes@near@coords@align{vertical}%
\fi
\fi
% check for sign-dependand alignment options:
\def\pgfplots@loc@TMPa{horizontal}%
\ifx\pgfplots@nodes@near@coords@align\pgfplots@loc@TMPa
\if1\csname pgfpmeta@\pgfplotspointmetainputhandler @issymbolic\endcsname%
\def\pgfplots@nodes@near@coords@align{above}%
\else
\pgfmathfloatifflags{\pgfplotspointmeta}{2}{%
% \pgfplotspointmeta < 0
\def\pgfplots@nodes@near@coords@align{left}%
}{%
% \pgfplotspointmeta >= 0
\def\pgfplots@nodes@near@coords@align{right}%
}%
\fi
\else
\def\pgfplots@loc@TMPa{vertical}%
\ifx\pgfplots@nodes@near@coords@align\pgfplots@loc@TMPa
\if1\csname pgfpmeta@\pgfplotspointmetainputhandler @issymbolic\endcsname%
\def\pgfplots@nodes@near@coords@align{above}%
\else
\pgfmathfloatifflags{\pgfplotspointmeta}{2}{%
% \pgfplotspointmeta < 0
\def\pgfplots@nodes@near@coords@align{below}%
}{%
% \pgfplotspointmeta >= 0
\def\pgfplots@nodes@near@coords@align{above}%
}%
\fi
\fi
\fi
% ok, place the node.
\expandafter\node\expandafter[\pgfplots@nodes@near@coords@align,%
/pgfplots/every node near coord]
at (0pt,0pt)
{%
\if1\csname pgfpmeta@\pgfplotspointmetainputhandler @issymbolic\endcsname%
% point meta=explicit symbolic
% do no try to invoke \pgfmathprintnumber on
% symbolic data... this check should keep the user
% interface simpler.
\def\pgfplots@loc@TMPa{\pgfmathprintnumber\pgfplotspointmeta}%
\def\pgfplots@loc@TMPb{#1}%
\ifx\pgfplots@loc@TMPa\pgfplots@loc@TMPb
\pgfplotspointmeta
\else
#1%
\fi
\else
#1%
\fi
};
},%
},%
/pgfplots/nodes near coords*/.default={\pgfmathprintnumber\pgfplotspointmeta},
/pgfplots/bar cycle list/.style={/pgfplots/cycle list={%
{blue,fill=blue!30!white,mark=none},%
{red,fill=red!30!white,mark=none},%
{brown!60!black,fill=brown!30!white,mark=none},%
{black,fill=gray,mark=none},%
}
},
/pgfplots/area cycle list/.style={bar cycle list},
/pgfplots/area legend/.style={%
/pgfplots/legend image code/.code={%
\draw[##1] (0cm,-0.1cm) rectangle (0.6cm,0.1cm);
}%
},
/pgfplots/area style/.style={%
area cycle list,
area legend,
axis on top,
},
/pgfplots/ybar legend/.style={
/pgfplots/legend image code/.code={\draw[##1,/tikz/.cd,bar width=3pt,yshift=-0.2em,bar shift=0pt] plot coordinates {(0cm,0.8em) (2*\pgfplotbarwidth,0.6em)};},
},
/pgfplots/ybar/.style={
bar cycle list,
xtick align=outside,
ybar legend,
/pgfplots/set point meta if empty=f(x),%
/pgf/bar shift={%
% total width = n*w + (n-1)*skip
% -> subtract half for centering
-0.5*(\numplots*\pgfplotbarwidth + (\numplots-1)*#1) +
% the '0.5*w' is for centering
(.5+\plotnum)*\pgfplotbarwidth + \plotnum*#1},%
/pgfplots/error bars/draw error bar/.code 2 args={%
% FIXME: simplify this code! It is just a replication of the default error stuff together with an xshift!
\pgfkeysgetvalue{/pgfplots/error bars/error mark}{\pgfplotserrorbarsmark}%
\pgfkeysgetvalue{/pgfplots/error bars/error mark options}{\pgfplotserrorbarsmarkopts}%
\draw[xshift={\pgfkeysvalueof{/pgf/bar shift}}]
##1 -- ##2 node[pos=1,sloped,allow upside down] {%
\expandafter\tikz\expandafter[\pgfplotserrorbarsmarkopts]{%
\expandafter\pgfuseplotmark\expandafter{\pgfplotserrorbarsmark}%
\pgfusepath{stroke}}%
};
},%
/pgfplots/every node near coord/.append style={xshift={\pgfkeysvalueof{/pgf/bar shift}}},%
/tikz/ybar,
},
/pgfplots/ybar/.default=2pt,
/pgfplots/ybar/.belongs to family=/pgfplots,
/pgfplots/xbar legend/.style={
/pgfplots/legend image code/.code={\draw[##1,/tikz/.cd,bar width=3pt,yshift=-0.2em,bar shift=0pt] plot coordinates {(0cm,0.8em) (2*\pgfplotbarwidth,0.6em)};},
},
/pgfplots/xbar/.style={
bar cycle list,
ytick align=outside,
/pgfplots/xbar legend,
/pgfplots/set point meta if empty=x,%
/pgf/bar shift={%
% total width = n*w + (n-1)*skip
% -> subtract half for centering
-0.5*(\numplots*\pgfplotbarwidth + (\numplots-1)*#1) +
% the '0.5*w' is for centering
(.5+\plotnum)*\pgfplotbarwidth + \plotnum*#1},%
/pgfplots/error bars/draw error bar/.code 2 args={%
% FIXME: simplify this code! It is just a replication of the default error stuff together with an xshift!
\pgfkeysgetvalue{/pgfplots/error bars/error mark}{\pgfplotserrorbarsmark}%
\pgfkeysgetvalue{/pgfplots/error bars/error mark options}{\pgfplotserrorbarsmarkopts}%
\draw[yshift={\pgfkeysvalueof{/pgf/bar shift}}]
##1 -- ##2 node[pos=1,sloped,allow upside down] {%
\expandafter\tikz\expandafter[\pgfplotserrorbarsmarkopts]{%
\expandafter\pgfuseplotmark\expandafter{\pgfplotserrorbarsmark}%
\pgfusepath{stroke}}%
};
},%
/pgfplots/every node near coord/.append style={yshift={\pgfkeysvalueof{/pgf/bar shift}}},%
/tikz/xbar,
},
/pgfplots/xbar/.default=2pt,
/pgfplots/xbar/.belongs to family=/pgfplots,
/pgfplots/ybar interval legend/.style={
/pgfplots/legend image code/.code={\draw[##1,/tikz/.cd,yshift=-0.2em,bar interval width=0.7,bar interval shift=0.5] plot coordinates {(0cm,0.8em) (5pt,0.6em) (10pt,0.6em)};},
},
/pgfplots/ybar interval/.style={%
/pgfplots/set point meta if empty=f(x),%
bar cycle list,
x tick label as interval,
xmajorgrids,
xtick align=outside,
xtick=data,
ybar interval legend,
bar interval width={#1/\numplots},
bar interval shift={(\plotnum+0.5)/\numplots},
/tikz/ybar interval,
},
/pgfplots/ybar interval/.default=1,
/pgfplots/ybar interval/.belongs to family=/pgfplots,
/pgfplots/xbar interval legend/.style={%
/pgfplots/legend image code/.code={\draw[##1,/tikz/.cd,yshift=-0.2em,bar interval width=0.7,bar interval shift=0.5] plot coordinates {(0cm,0.8em) (5pt,0.6em) (10pt,0.6em)};},
},
/pgfplots/xbar interval/.style={%
/pgfplots/set point meta if empty=x,%
bar cycle list,
y tick label as interval,
ytick=data,
ymajorgrids,
ytick align=outside,
xbar interval legend,
bar interval width={#1/\numplots},
bar interval shift={(\plotnum+0.5)/\numplots},
/tikz/xbar interval,
},
/pgfplots/xbar interval/.default=1,
/pgfplots/xbar interval/.belongs to family=/pgfplots,
/pgfplots/xbar stacked/.style={
/pgfplots/set point meta if empty=x,%
bar cycle list,
stack plots=x,
stack dir=#1,
/tikz/xbar,
},
/pgfplots/xbar stacked/.default=plus,
/pgfplots/xbar stacked/.belongs to family=/pgfplots,
/pgfplots/ybar stacked/.style={
/pgfplots/set point meta if empty=f(x),%
bar cycle list,
stack plots=y,
stack dir=#1,
/tikz/ybar,
},
/pgfplots/ybar stacked/.default=plus,
/pgfplots/ybar stacked/.belongs to family=/pgfplots,
/pgfplots/xbar interval stacked/.style={
/pgfplots/set point meta if empty=x,%
bar cycle list,
stack plots=x,
stack dir=#1,
/tikz/xbar interval,
},
/pgfplots/xbar interval stacked/.default=plus,
/pgfplots/xbar interval stacked/.belongs to family=/pgfplots,
/pgfplots/ybar interval stacked/.style={
/pgfplots/set point meta if empty=f(x),%
bar cycle list,
stack plots=y,
stack dir=#1,
/tikz/ybar interval,
},
/pgfplots/ybar interval stacked/.default=plus,
/pgfplots/ybar interval stacked/.belongs to family=/pgfplots,
/pgfplots/yticklabel interval boundaries/.style={%
y tick label as interval,
yticklabel={$\pgfmathprintnumber{\tick}$ -- $\pgfmathprintnumber{\nexttick}$}
},
/pgfplots/xticklabel interval boundaries/.style={%
x tick label as interval,
xticklabel={$\pgfmathprintnumber{\tick}$ -- $\pgfmathprintnumber{\nexttick}$}
},
/pgfplots/plot file/skip first/.is if=pgfplots@plot@file@skipfirst,
/pgfplots/plot file/skip first/.default=true,
/pgfplots/plot file/ignore first/.style={/pgfplots/plot file/skip first={#1}},
/pgfplots/plot file/.search also=/pgfplots,%
/pgfplots/plot coordinates/math parser/.is if=pgfplots@plot@coords@mathparser,
/pgfplots/plot graphics/.code={\let\tikz@plot@handler=\pgfplotsplothandlergraphics},%
/pgfplots/plot graphics/src/.initial=,
/pgfplots/plot graphics/includegraphics/.initial=,
/pgfplots/plot graphics/xmin/.initial=,
/pgfplots/plot graphics/xmax/.initial=,
/pgfplots/plot graphics/ymin/.initial=,
/pgfplots/plot graphics/ymax/.initial=,
/pgfplots/plot graphics/zmin/.initial=,
/pgfplots/plot graphics/zmax/.initial=,
/pgfplots/plot graphics/lowlevel draw/.code 2 args={%
\pgfplots@plot@handler@graphics@DRAW{#1}{#2}%
},%
/pgfplots/plot graphics/node/.style={
transform shape,
inner sep=0pt,
outer sep=0pt,
every node/.style={},
anchor=south west,
at={(0pt,0pt)},
rectangle
},
% 'mesh' plots.
% The macro \pgfplots@meshmode is
% n if meshmode == false,
% m if meshmode == 'mesh',
% s if meshmode == 'surf'.
%
% The type of surface plot can be configured with 'shader'.
/pgfplots/mesh/.is choice,
/pgfplots/mesh/true/.code={%
\def\pgfplots@meshmode{m}%
\let\tikz@plot@handler=\pgfplotsplothandlermesh
\pgfkeysalso{/pgfplots/set point meta if empty=f(x),/pgfplots/every mesh,/pgfplots/mesh legend,/tikz/color=mapped color}%
},
/pgfplots/mesh/false/.code={
\def\pgfplots@meshmode{n}%
\ifx\tikz@plot@handler\pgfplotsplothandlermesh
\let\tikz@plot@handler=\pgfplothandlerlineto
\fi},
/pgfplots/mesh/.default=true,
/pgfplots/surf/.code={%
\pgfkeysalso{/pgfplots/mesh=#1}%
\def\pgfplots@meshmode{s}%
},%
/pgfplots/mesh/rows/.initial=,
/pgfplots/mesh/cols/.initial=,
/pgfplots/mesh/scanline verbose/.is if=pgfplots@scanline@verbose,%
/pgfplots/mesh/scanline verbose/.default=true,
/pgfplots/mesh/check/.code={%
\pgfplotsutilifstringequal{#1}{false}{%
\def\pgfplots@mesh@checkmode{0}%
}{%
\pgfplotsutilifstringequal{#1}{warning}{%
\def\pgfplots@mesh@checkmode{1}%
}{%
\pgfplotsutilifstringequal{#1}{error}{%
\def\pgfplots@mesh@checkmode{2}%
}{%
\pgfplots@error{Invalid value `#1' for /pgfplots/mesh/check. Please use one of false,warning,error}%
}%
}%
}%
},%
/pgfplots/mesh/check=error,
/pgfplots/mesh/ordering/.is choice,
/pgfplots/mesh/ordering/x varies/.code={\def\pgfplots@plot@mesh@ordering{0}},
/pgfplots/mesh/ordering/y varies/.code={\def\pgfplots@plot@mesh@ordering{1}},
/pgfplots/mesh/ordering/rowwise/.style={/pgfplots/mesh/ordering/x varies},
/pgfplots/mesh/ordering/colwise/.style={/pgfplots/mesh/ordering/y varies},
/pgfplots/mesh/ordering/x varies,
/pgfplots/every mesh/.code={%
% is slower:
%\pgfkeysalso{/pgfplots/unbounded coords=jump}% mesh plots need balanced cols!
},%
/pgfplots/mesh legend/.style={%
/pgfplots/legend image code/.code={%
\pgfplotsplothandlermesh@defaultlegend@img{##1}%
}%
},
/pgfplots/mesh/num points/.initial=\numcoords,% this is NOT part of the public interface. Don't change it.
/pgfplots/z buffer/.is choice,%
/pgfplots/z buffer/none/.code={\def\pgfplotsplothandlermesh@zbuffer@choice{0}},%
/pgfplots/z buffer/reverse x seq/.code={\def\pgfplotsplothandlermesh@zbuffer@choice{1}},%
/pgfplots/z buffer/reverse y seq/.code={\def\pgfplotsplothandlermesh@zbuffer@choice{2}},%
/pgfplots/z buffer/reverse xy seq/.code={\def\pgfplotsplothandlermesh@zbuffer@choice{3}},%
/pgfplots/z buffer/sort/.code={\def\pgfplotsplothandlermesh@zbuffer@choice{4}},%
/pgfplots/z buffer/auto/.code={\def\pgfplotsplothandlermesh@zbuffer@choice{5}},%
/pgfplots/z buffer/default/.code={\def\pgfplotsplothandlermesh@zbuffer@choice{6}},%
/pgfplots/z buffer/default,%
%
% Set the shader used for surface plots.
% RULES:
% 1. meshmode == 'm' (mesh):
% This means we use "shader/flat" to determine the colors
% and ignore fill colors.
% 2. meshmode == 's' (surf):
% the shader specifies how colors are used.
% 3. Onedimensional mesh/surf plots are treated like 'mesh'
% plots.
/pgfplots/shader/.is choice,
/pgfplots/shader/flat corner/.code={\def\pgfplotsplothandlermesh@shader{0}\def\pgfplotsplothandlermesh@flatmode{c}},
/pgfplots/shader/flat mean/.code={\def\pgfplotsplothandlermesh@shader{0}\def\pgfplotsplothandlermesh@flatmode{m}},
/pgfplots/shader/flat/.style={/pgfplots/shader/flat mean},%
/pgfplots/shader/faceted/.code={\def\pgfplotsplothandlermesh@shader{1}},
/pgfplots/shader/interp/.code={\def\pgfplotsplothandlermesh@shader{2}},
/pgfplots/shader/faceted,
/pgfplots/faceted color/.initial=mapped color!80!black,
/pgfplots/clip marker paths/.is if=pgfplots@clip@marker@paths,
/pgfplots/clip marker paths/.default=true,
/pgfplots/axis on top/.is if=pgfplots@axis@on@top,
/pgfplots/axis on top/.default=true,
/pgfplots/every crossref picture/.style={%
baseline,yshift=0.3em
},
/pgfplots/unbounded coords/.code={%
\edef\pgfplots@loc@TMPa{#1}%
\def\pgfplots@loc@TMPb{discard}%
\ifx\pgfplots@loc@TMPa\pgfplots@loc@TMPb
\def\pgfplots@unbounded@handler{d}%
\else
\def\pgfplots@loc@TMPb{jump}%
\ifx\pgfplots@loc@TMPa\pgfplots@loc@TMPb
\def\pgfplots@unbounded@handler{j}%
\else
\pgfplots@error{Sorry, the choice `#1' is unknown for \pgfkeyscurrentkey. Please use either 'discard' or 'jump'.}%
\fi
\fi
},%
/pgfplots/unbounded coords=discard,
/pgfplots/x coord trafo/.code={},
/pgfplots/x coord inv trafo/.code={},
/pgfplots/y coord trafo/.code={},
/pgfplots/y coord inv trafo/.code={},
/pgfplots/z coord trafo/.code={},
/pgfplots/z coord inv trafo/.code={},
%
% #1 = {,,....}
/pgfplots/symbolic coords/.code 2 args={%
\pgfplotsarraynew\pgfplots@symbolic@coords@inverse{#2}%
\pgfplotsarrayforeachungrouped\pgfplots@symbolic@coords@inverse\as\pgfplots@loc@TMPa{%
\expandafter\edef\csname pgfp@symb@coords@\pgfplots@loc@TMPa\endcsname{\pgfplotsarrayforeachindex}%
}%
\pgfkeysdef{/pgfplots/#1 coord trafo}{%
\pgfutil@ifundefined{pgfp@symb@coords@##1}{%
\pgfplots@error{Sorry, the input coordinate `##1' has not been defined with 'symbolic #1 coords={#2}... Maybe it has been misspelled?}%
\def\pgfmathresult{0}%
}{%
\edef\pgfmathresult{\csname pgfp@symb@coords@##1\endcsname}%
}%
}%
\pgfkeysdef{/pgfplots/#1 coord inv trafo}{%
\begingroup
% discard everything up to the period:
\pgfmath@basic@round@{##1}%
\afterassignment\pgfplots@gobble@until@relax
\count0=\pgfmathresult\relax
\ifnum\count0<0
\count0=0
\else
\count1=\pgfplotsarraysizeof\pgfplots@symbolic@coords@inverse\relax
\ifnum\count0<\count1
\else
\count0=\count1
\advance\count0 by-1
\fi
\fi
\pgfplotsarrayselect\count0 \of\pgfplots@symbolic@coords@inverse\to\pgfmathresult
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\pgfkeysalso{%
/pgfplots/#1ticklabel={\tick},%
/pgfplots/scaled #1 ticks=false,%
/pgfplots/plot coordinates/math parser=false,%
}%
},%
/pgfplots/symbolic x coords/.style={symbolic coords={x}{#1}},%
/pgfplots/symbolic y coords/.style={symbolic coords={y}{#1}},%
/pgfplots/symbolic z coords/.style={symbolic coords={z}{#1}},%
% Defines the class name \pgfplotspointmetainputhandler:
/pgfplots/point meta/.code={%
% this thing here converts control sequences to
% characters, they won't cause 'unknown control sequence'
% errors:
\def\pgfplots@loc@TMPa{#1}%
\pgfplots@command@to@string\pgfplots@loc@TMPa\pgfplots@loc@TMPb
\pgfkeysifdefined{/pgfplots/point meta/\pgfplots@loc@TMPb/.@cmd}{%
\pgfplots@invoke@pgfkeyscode{/pgfplots/point meta/#1/.@cmd}{}%
}{%
\pgfplotssetpointmetainput{expr}{#1}%
}%
},%
/pgfplots/point meta/none/.code ={\pgfplotssetpointmetainput{}{}},%
/pgfplots/point meta/x/.code ={\pgfplotssetpointmetainput{x}{}},%
/pgfplots/point meta/y/.code ={\pgfplotssetpointmetainput{y}{}},%
/pgfplots/point meta/z/.code ={\pgfplotssetpointmetainput{z}{}},%
/pgfplots/point meta/explicit/.code={\pgfplotssetpointmetainput{explicit}{}},%
/pgfplots/point meta/explicit symbolic/.code={\pgfplotssetpointmetainput{explicit symbolic}{}},%
/pgfplots/point meta/f(x)/.code={
\ifpgfplots@curplot@threedim
\pgfplotssetpointmetainput{z}{}%
\else
\pgfplotssetpointmetainput{y}{}%
\fi
},
/pgfplots/set point meta if empty/.code={%
\ifx\pgfplotspointmetainputhandler\pgfutil@empty
\pgfkeysalso{/pgfplots/point meta/#1}%
\fi
},%
/pgfplots/point meta/none,
/pgfplots/point meta rel/.is choice,
/pgfplots/point meta rel/axis wide/.code={\def\pgfplots@perpointmeta@rel@choice{0}},%
/pgfplots/point meta rel/per plot/.code={\def\pgfplots@perpointmeta@rel@choice{1}},%
/pgfplots/point meta rel/axis wide,%
/pgfplots/point meta min/.initial=,%
/pgfplots/point meta max/.initial=,%
/pgfplots/colormap name/.initial=hot,
/pgfplots/colormap access/.is choice,
/pgfplots/colormap access/direct/.code={\def\pgfplots@colormap@access{d}},%
/pgfplots/colormap access/map/.code={\def\pgfplots@colormap@access{m}},%
/pgfplots/colormap access/map,%
/pgfplots/colormap/.code 2 args={%
\pgfplotscreatecolormap{#1}{#2}%
\pgfkeysalso{/pgfplots/colormap name=#1}%
},
/pgfplots/colormap/hot/.style={
colormap name=hot
},
/pgfplots/colormap/bluered/.style={
/pgfplots/colormap={bluered}{rgb255(0cm)=(0,0,180); rgb255(1cm)=(0,255,255); rgb255(2cm)=(100,255,0); rgb255(3cm)=(255,255,0); rgb255(4cm)=(255,0,0); rgb255(5cm)=(128,0,0)}
},
/pgfplots/colormap/cool/.style={
/pgfplots/colormap={cool}{rgb255(0cm)=(255,255,255); rgb255(1cm)=(0,128,255); rgb255(2cm)=(255,0,255)}
},
/pgfplots/colormap/greenyellow/.style={
/pgfplots/colormap={greenyellow}{rgb255(0cm)=(0,128,0); rgb255(1cm)=(255,255,0)}
},
/pgfplots/colormap/redyellow/.style={
/pgfplots/colormap={redyellow}{rgb255(0cm)=(255,0,0); rgb255(1cm)=(255,255,0)}
},
/pgfplots/colormap/blackwhite/.style={
colormap={blackwhite}{gray(0cm)=(0); gray(1cm)=(1)}
},
/pgfplots/colormap/violet/.style={
colormap={violet}{rgb255=(25,25,122) color=(white) rgb255=(238,140,238)}
},
/pgfplots/scatter/.is choice,
/pgfplots/scatter/false/.code={%
\pgfplots@scatterplotenabledfalse
},%
/pgfplots/scatter/true*/.code={%
\pgfplots@scatterplotenabledtrue
\pgfkeysalso{/pgfplots/set point meta if empty=f(x)}%
},%
/pgfplots/scatter/true/.code={%
\pgfplots@scatterplotenabledtrue
\pgfkeysalso{/pgfplots/set point meta if empty=f(x)}%
% make sure there is a mark set!
\pgfplots@gettikzinternal@keyval{mark}{tikz@plot@mark}{}%
\def\pgfplots@loc@TMPa{none}%
\ifx\tikz@plot@mark\pgfplots@loc@TMPa
% this here happens only in older versions of pgf.
\pgfqkeys{/tikz}{mark=*}%
\else
\ifx\tikz@plot@mark\pgfutil@empty
\pgfqkeys{/tikz}{mark=*}%
\fi
\fi
},
/pgfplots/scatter/.default=true,
/pgfplots/scatter src/.style={/pgfplots/point meta={#1}},
/tikz/scatter/.style={/pgfplots/scatter=#1},
%
% ARGUMENTS: the macros
% - \pgfplotspointmeta
% - \pgfplotspointmetarange
% - \pgfplotspointmetatransformed
% - \pgfplotspointmetatransformedrange
% are set during @pre marker code and @post marker code.
% '#1' is empty.
/pgfplots/scatter/@pre marker code/.code=,%
/pgfplots/scatter/@post marker code/.code=,%
/pgfplots/scatter/use mapped color/.style={%
/pgfplots/scatter/@pre marker code/.code=,%
/pgfplots/scatter/@post marker code/.code=,%
/pgfplots/scatter/use mapped color*={#1},%
},%
/pgfplots/scatter/use mapped color*/.style={
/pgfplots/scatter/@pre marker code/.append code={
\pgfplotscolormapdefinemappedcolor\pgfplotspointmetatransformed
\scope[#1]%
},
/pgfplots/scatter/@post marker code/.prefix code={\endscope}
},
/pgfplots/scatter/use mapped color*/.default={draw=mapped color!80!black,fill=mapped color},
/pgfplots/scatter/use mapped color*,
% expect '#1 = {=